.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
点确定
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)