首页 > Web开发 > 详细

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

时间:2014-08-17 13:04:32      阅读:855      评论:0      收藏:0      [点我收藏+]

<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 上传文件 所遇问题解决办法,布布扣,bubuko.com

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

原文:http://blog.csdn.net/duxing_langzi/article/details/38637915

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!