在IE8浏览器下,.net做文件上传时,选择文件后,第一次点击上传按钮无效,得点击两次

在IE8浏览器下,.net做文件上传时,选择文件后,第一次点击上传按钮无效,得点击两次,第1张

兄弟,你用的是FLASH上传插件还是.NET自带的上传组件还是HTML的上传按钮啊?

.NET自带的控件我不是很清楚,用的比较少,因为他不支持多文件上传。

HTML的上传按钮用的更少,好像也不支持多文件上传的。

但是我用过FLASH上传插件,当初用的时候也遇到了你现在的问题,不过没有太深入的研究,毕竟是别人开发的插件,如果要修改挺费劲的,而且还要精通JS包括AS语言,因为这个插件的功能是通过调用FLASH来完成的。

所以比较麻烦,不管是我的插件还是你现在用的,归根结底的原因无非就是浏览器兼容性导致的(苦逼的IE内核)。

那么效率最高的解决办法就是加一句注释,这个只要拖个LABEL控件就解决了。

上面写上:如果点击一次没反应请双击上传按钮即可。

一句话什么都搞定了。(主要因为我是个懒人,否则也不会去用别人的插件了,请谅解)

现在的IE内核浏览器基本都有兼容模式(当然你事先要先测试一下),然后你可以用文本的方式提示下用户,这样通过兼容模式就可以解决了。

IE内核的浏览器本身对于支持FLASH,JS,JQ等特效就不是很好,所以千万不要纠结再这上面,除非你是靠这吃饭的(专门研究浏览器兼容性的,苦逼的差事),否则功能能实现就行了。

补充一点:兄弟如果你研究出来了,记得百度HI我一下,告诉我下原因,然后我会通过高分提问来采纳你的谢谢。

直接上代码给你参考

@RequestMapping("upload")

public String upload(HttpServletRequest request, PrintWriter out) throws JSONException {

String realPath = "D:/upload"

+ DateUtil.getCurrenDate()// 上传图片路径dir

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request

Map<String, MultipartFile>fileMap = multipartRequest.getFileMap()

MultipartFile multipartFile = null

String fileName = null

for (Map.Entry<String, MultipartFile>set : fileMap.entrySet()) {

// String filekey = set.getKey()// Filedata

multipartFile = set.getValue()// 文件名

}

fileName = this.storeIOc(multipartRequest, multipartFile,realPath)

String fileName = ""

String logImageName = ""

if (file.isEmpty()) {

System.out.println("文件未上传")

} else {

FileHelper.mkdirs(realPath)//如果文件路径不存在,则创建

String _fileName = file.getOriginalFilename()

String suffix = _fileName.substring(_fileName.lastIndexOf("."))

// /**使用UUID生成文件名称**/

logImageName = UUID.randomUUID().toString() + suffix

fileName = realPath + File.separator + logImageName

File restore = new File(fileName)

try {

file.transferTo(restore)

} catch (Exception e) {

throw new RuntimeException(e)

}

}

// 返回默认的图片地址

return fileName

}

关于IE8在发送邮件时不能上传附件的解决方法

近期很多电脑自动升级到IE8.0,导致不能正常的收发内外网邮件,原因是因为IE8.0屏蔽了磁盘本地路径,导致不能上传附件,解决方法如下:

单击开始菜单—(设置)—控制面板——internet选项——安全——自定义级别——将文件上载到服务器时包含本地路径(大约在中间稍微靠下的地方)——点选 启用——然后点确定——出来一个警告选是——最后确定就好

若果找不到internet选项请同时按下win+r 键 复制下面的命令

rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,1

点确定


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8077374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存