`
qwertyxl
  • 浏览: 17813 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

ajaxfileupload.js使用总结,整了两天,大家可以少走点弯路

阅读更多

这两天在做一个图片上传器,整了两天,因为浏览器的兼容性问题,主要还是奇葩的IE,不过一番周折后,最后还是成功兼容IE8+(8以下没有测过),firefox,chrome等主流浏览器。

做好了效果是这样子的:



 



 

有两层iframe嵌套,图片使用uploadPreview.js做预览,因为原生的input type="file"上传控件样式太丑,

于是把原生的上传控件隐藏<input id="uploadFile" name="file" type="file"  style="display:none"/>,

自己写了个按钮点击的时候去focus()一下就可以弹出文件选择了,然后调用ajaxfileupload.js去上传图片,ok,firefox和chrome测试都通过,很顺利,结果没想到IE果然还是不负众望地挂掉了。

 

第一个问题:

IE首先碰见的是选择图片之后uploadPreview.js不能预览,尝试了各种办法,最后发现ie由于安全机制,

不支持别的按钮去触发<input id="uploadFile" name="file" type="file" />,于是只能去使用原生的了,参照这篇http://www.haorooms.com/post/css_input_uploadmh文章改了一下原生的样式,好看了些,ie可以预览了,紧接着

 

 

第二个问题:

框架使用的是SpringMVC,在IE使用ajaxfileupload.js上传,java的action会返回一个json数据,ajaxfileupload的回掉函数会有一些处理,结果在ie下调用,浏览器直接弹出的是下载。

 贴上原有的方法:

@RequestMapping("ajaxUpload")

@ResponseBody

public JSONObject ajaxUpload(

@RequestParam("file") MultipartFile file,

HttpServletRequest request,

HttpServletResponse response) throws Exception {

JSONObject jsonObject = new JSONObject();

.....

//filePath,处理\\,js不认\\,变成;

parentDir = parentDir.replaceAll("\\" + File.separator, ";");

jsonObject.put("resultMsg", resultMsg);

jsonObject.put("width", widths);

jsonObject.put("_callback", request.getParameter("_callback"));

jsonObject.put("filePath", parentDir + ";" + destFilename);

jsonObject.put("fileName", originalFilename);

return jsonObject;

}

 

 

我的解决方法(为ie专门写了一套):

@RequestMapping("ajaxUploadIE")

@ResponseBody

public void ajaxUploadIE(

@RequestParam("file") MultipartFile file,

HttpServletRequest request,

HttpServletResponse response) throws Exception {

JSONObject jsonObject = new JSONObject();

....

//filePath,处理\\,js不认\\,变成;

parentDir = parentDir.replaceAll("\\" + File.separator, ";");

jsonObject.put("resultMsg", resultMsg);

jsonObject.put("width", widths);

jsonObject.put("_callback", request.getParameter("_callback"));

jsonObject.put("filePath", parentDir + ";" + destFilename);

jsonObject.put("fileName", originalFilename);

response.setContentType("text/html");

response.getWriter().write(jsonObject.toString()); 

 

}

 

 

 

第三个问题:

在ie下图片开始没有路径的话,会有一个空的边框,borer=0,border-style:none。。。。等等都试了,都不好使,我的最后的做法是,为ie写了一个样式,开始让图片透明,选择了图片之后再用js把图片透明度调回来,显示就正常了。

img{

 filter:alpha(opacity=0);

}

 

 

 

就这些,记录下。

  • 大小: 67 KB
分享到:
评论

相关推荐

    ajaxfileupload.js完整使用全套(带对应jquery+demo)

    在本文中,我们将深入探讨`ajaxfileupload.js`的完整使用方法,以及它与jQuery的集成。`ajaxfileupload.js`是一个JavaScript库,用于实现异步文件上传功能,避免了传统文件上传时页面刷新的问题。它与jQuery的结合...

    AjaxFileUpload.js

    AjaxFileUpload.js是一个专为实现异步文件上传功能而设计的JavaScript库,它利用Ajax技术实现了无刷新的文件上传,极大地提升了用户体验。在本文中,我们将深入探讨AjaxFileUpload.js的工作原理、使用方法以及相关的...

    ajaxfileupload.js用于文件上传

    ajaxfileupload.js用于文件上传

    方便自己下载的ajaxfileupload.js备份

    总结来说,"方便自己下载的ajaxfileupload.js备份"是一个适用于前端开发者的实用资源,它结合了jQuery和Ajax技术,提供了便捷的图片异步上传功能。开发者可以通过引入这两个文件,轻松地在自己的项目中实现图片上传...

    ajaxfileupload.js

    ajaxfileupload.js, jquery异步文件上传插件

    ajaxfileupload.js文件下载

    此为前端进行文件上传,使用Ajax方式提交的js插件,使用方便简洁,开发很高效。

    Jquery上传插件文件ajaxfileupload.js 修复版下载

    使用Jquery做上传文件处理时,用到了ajaxfileupload.js 这个第三方代码,但是这个js几乎就是半成品,问题很多。现在整理如下并附修复版的ajaxfileupload.js下载。 问题: 1:无法带参数提交,只能上传文件; 2:...

    使用ajaxFileUpload.js上传文件

    本篇文章将深入探讨`AjaxFileUpload.js`的工作原理、使用方法及其相关知识点。 `AjaxFileUpload.js`通常与服务器端的脚本配合使用,如PHP、ASP.NET或Node.js等,以接收并处理上传的文件。它利用HTML5的File API和...

    解决ajaxfileupload.js在IE9,firefox下文件超大无效

    通过上述方法,我们可以有效解决在IE9和Firefox浏览器下使用`AjaxFileUpload.js`上传大文件时出现的问题。这种方法的核心是调整服务器端响应的`Content-Type`,从而使得浏览器能够正确解析响应数据。同时,该方法也...

    ajaxfileupload.js 兼容ie

    ajaxfileupload.js 兼容IE

    JSP使用ajaxFileUpload.js实现跨域问题.docx

    ### JSP 使用 ajaxFileUpload.js 实现跨域问题解析 #### 一、背景与概述 在Web开发中,跨域问题一直是开发者面临的一个常见难题。跨域问题是由于浏览器的同源策略导致的,该策略限制了一个域下的JavaScript脚本...

    一个支持Jquery3 的ajaxfileupload.js

    通过修改终于使得ajaxfileupload兼容jquery3,代码已上线运行。

    ajaxfileupload.js 异步上传jquery插件

    **AjaxFileUpload.js** 是一个基于 jQuery 的异步文件上传插件,它允许用户在不刷新页面的情况下上传文件,提供了一种便捷、高效的文件交互体验。这个插件广泛应用于网页应用,尤其是那些需要用户交互频繁上传文件的...

    ajaxFileUpload.js

    **AjaxFileUpload.js** 是一个JavaScript库,专为在网页上实现异步文件上传而设计。这个库利用了Ajax技术,使得用户可以在不刷新整个页面的情况下上传文件,提供了更好的用户体验。AjaxFileUpload.js通常与jQuery库...

    jquery-1.2.1.js和ajaxfileupload.js

    今天我们要讨论的是两个非常著名的JavaScript文件:“jquery-1.2.1.js”和“ajaxfileupload.js”。这两个文件在Web开发中有着重要的作用,特别是在处理异步文件上传和页面交互方面。 首先,我们来了解“jquery-...

    完整ajaxfileupload.js

    ajax上传文件必须js文件,修复其中缺少handleError方法,json处理带有&lt;pre&gt;&lt;/pre&gt;,问题,亲测可以,直接引用即可!

Global site tag (gtag.js) - Google Analytics