Jquery AjaxFileUpload.js 上传文件 所遇问题解决办法

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">导入 AjaxFileUpload.js 文件</span>

js代码

$.ajaxFileUpload({
	        url: 'upload',//处理图片脚本
	        secureuri : false,
	        fileElementId : 'uploadImg',//file控件id
	        data: {photoType: photoType},//参数
	        dataType : 'json', //参数大写  否则谷歌浏览器可能报错
	        success : function (data,status){
	            data=jQuery.parseJSON(data);
	        	$("#hideImgPath").val(data.filePath);
				alert("上传图片成功!");
	        },
	        error: function(data, status, e){
	            alert("上传图片失败!请稍后重试!");
	        }
		});

html代码

<span class="d">
	<input type="file" id="uploadImg" name="uploadImg" value="" />
	<input type="button" id="uploadImgButton" onclick="uploadSaveImg();" value="确定上传" />
	<input type="hidden" value="" id="hideImgPath" name="hideImgPath"/>
	</br>格式一般为GIF或者JPEG,大小100*100像素;
</span>

所遇问题1:  在使用springMVC 框架时 ,  IE浏览器会将返回的数据直接下载

解决办法:在springMVC配置文件中  添加如下配置信息:

<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
	<bean id="mappingJacksonHttpMessageConverter"
		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
			</list>
		</property>
	</bean>

同时设置返回数据的类型: response.setContentType("text/plain;charset=UTF-8");

所遇问题2:返回的数据中带有<pre> 标签

解决办法: 将AjaxFileUpload.js文件中     eval( "data = " + data );   改成   data = jQuery.parseJSON(jQuery(data).text());

此时如果在页面上还是无法解析时,请再将 返回数据转成Json 一遍   data=jQuery.parseJSON(data);

所遇问题3:  在使用springMVC时   后台接收不到 前台的 File   时  报错:

nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/io/output/DeferredFileOutputStreamat 

org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1259)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822)

java.lang.ClassNotFoundException:
org.apache.commons.io.output.DeferredFileOutputStream

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)

at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)

解决办法:   1、 添加 commons-io-1.3.1.jar  包 ,此包是上传所依赖的包   。

2、如果添加此包后还是提示找不到本包    原因可能有两点:①、tomcat  没有加载本包,此时请到tomcat下 将此包勾选上 。   ②如果出现本包冲突时 将tomcat下

的同名jar包 删掉

Jquery AjaxFileUpload.js 上传文件 所遇问题解决办法

时间: 2024-10-23 09:48:51

Jquery AjaxFileUpload.js 上传文件 所遇问题解决办法的相关文章

struts2 jquery ajaxFileUpload 异步上传文件

一.ajaxFileUpload 实现异步上传文件利用到了ajaxFileUpload.js这个文件,这是别人开发的一个jquery的插件,可以实现文件的上传并能够和struts2框架和好的融合在一起.但是网上的提供的一些ajaxFileUpload.js插件存在一些问题,不能够实现多次点击上传文件,要想再次上传必须重新刷新页面.在网上找了好久才找到真正的解决方案,有些网友给出的解决方案并没有真正的解决问题,不知到什么原因.我的修改: 原文件: var oldElement = $('#' +

[原创]使用ajaxFileUpload.js上传文件时附带额外参数。

最近公司的一个项目涉及到导入Excel的功能,于是就想到用ajaxFileUpload来实现上传文件,因为用过很多次了,网上也有很多文章介绍.使用方法不表.但是在附带参数这个环节卡住了:文件可以上传到后台,但是附带的json参数怎么都传不到后台. 通过网上的文章和查看ajaxFileUpload.js源码发现:ajaxFileUpload.js本身根本就不支持附带参数. function ajaxFileUpload(DOMId,row){ var param={"exam.class_id&q

jquery插件--ajaxfileupload.js上传文件原理分析

英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的. jQuery.extend({ createUploadIframe: function (id, uri) {//id为当前系统时间字符串,uri是外部传入的json对象的一个参数 //create frame var frameId = 'jUploadFrame' + id; //给iframe添加一个独一无二的id var iframeHtml = '<iframe id="' + f

ajaxfileupload.js上传文件兼容IE7及以上版本

要兼容IE789,要修改ajaxfileupload.js;要将此处的代码替换掉 if(window.ActiveXObject) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />'); if(typeof uri== 'boolean'){ io.src = 'javascript:false'; } else if(typ

jquery.form.js上传文件ie弹出下载文件解决办法

在ie下如果返回类型为jsonresult,ie老版本无法识别json类型,默认将会采用下载或者打开文件! 如果使用mvc的话.直接修改action返回类型为string即可,例如:return JsonConvert.SerializeObject(new { url = "", error = "请选择文件" });

input type=&quot;file&quot; accept=&quot;image/*&quot;上传文件慢的问题解决办法

相信大家都写过<input type="file" name="file" class="element" accept="image/*"> 默认过滤掉所有非图片文件: 这段代码在Chrome和Safari等Webkit浏览器下却出现了响应滞慢的问题,可能要等 6~10s 才能弹出文件选择对话框.简直不能忍呀. 在IE和Firefox中使用 accept="image/*" 属性则没有发现响应

jQuery插件-ajaxFileUpload异步上传文件

ajaxFileUpload是前两天学习过程中接触到的一个JQ插件,功能很简单,就是实现异步上传文件的功能. 1.语法介绍 $.ajaxFileUpload([setting]); 参数说明: (1)url——执行上传处理的地址: (2)secureuri——是否启用安全提交,默认为false: (3)fileElementId——需要上传<input type=”file”>控件id属性值: (4)data——自定义参数,即需要额外传递的JSON格式数据: (5)type——请求方式,提交自

【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现ajaxFileUpload这个插件挺不错,所以就用这个插件来做异步上传文件的效果.网上也有很多对ajaxFileUpload插件的使用的文章,不过我发现没有PHP版,所以这次服务器那边的处理就使用PHP语言来处理. 一.先对ajaxFileUpload插件的语法参数进行讲解 原理:ajaxfileu

JQuery插件ajaxFileUpload 异步上传文件(PHP版)

太久没写博客了,真的是太忙了.善于总结,进步才会更快啊.不多说,直接进入主题. 前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现ajaxFileUpload这个插件挺不错,所以就用这个插件来做异步上传文件的效果.网上也有很多对ajaxFileUpload插件的使用的文章,不过我发现没有PHP版,所以这次服务器那边的处理就使用PHP语言来处理. 一.