在struts2中应用jQuery插件ajaxfileupload
在struts2中使用jQuery插件ajaxfileupload
ajaxfileupload是一款jQuery插件,用来实现文件的ajax方式上传功能。
下载地址:
http://www.phpletter.com/download_project_version.php?version_id=6
在页面中使用ajaxfileupload其实很简单,在页面加入如下JavaScript代码:
下载下来的包中有一个例子,不过服务器是PHP。我们需要在服务器端使用Struts2,并且需要struts2返回json结果,因此struts2需要json插件,下载地址:
http://jsonplugin.googlecode.com/files/jsonplugin-0.33.jar
struts.xml配置中的Action结果类型:
其中,contentType参数是一定要有的,否则浏览器总是提示将返回的JSON结果另存为文件,不会交给ajaxfileupload处理。这是因为struts2 JSON Plugin默认的contentType为application/json,而ajaxfileupload则要求为text/html。
===============================广告====================================
使用VPS下载资源、架设VPN--PhotonVPS,无需信用卡,支付宝即可支付。
ajaxfileupload是一款jQuery插件,用来实现文件的ajax方式上传功能。
下载地址:
http://www.phpletter.com/download_project_version.php?version_id=6
在页面中使用ajaxfileupload其实很简单,在页面加入如下JavaScript代码:
function ajaxFileUpload() { $.ajaxFileUpload ( { url:'/ajax/upload.action', secureuri:false, fileElementId:'fileToUpload', dataType: 'json', success: function (data, status) { if(typeof(data.error) != 'undefined') { if(data.error != '') { alert(data.error); }else { alert(data.msg); } } }, error: function (data, status, e) { alert(e); } } ) return false; }
下载下来的包中有一个例子,不过服务器是PHP。我们需要在服务器端使用Struts2,并且需要struts2返回json结果,因此struts2需要json插件,下载地址:
http://jsonplugin.googlecode.com/files/jsonplugin-0.33.jar
struts.xml配置中的Action结果类型:
<action name="upload" class="..."> <param name="contentType" value="text/html"/> <result type="json"></result> </action>
其中,contentType参数是一定要有的,否则浏览器总是提示将返回的JSON结果另存为文件,不会交给ajaxfileupload处理。这是因为struts2 JSON Plugin默认的contentType为application/json,而ajaxfileupload则要求为text/html。
===============================广告====================================
使用VPS下载资源、架设VPN--PhotonVPS,无需信用卡,支付宝即可支付。
1 楼
earthsky
2009-08-07
现在我正做struts2和ajaxfileupload的结合,老是出现另存为文件的对话框,加上了你说的<
param name="contentType" value="text/html"/>但是还是不行,能把你代码共享一下吗?谢谢
param name="contentType" value="text/html"/>但是还是不行,能把你代码共享一下吗?谢谢
2 楼
qdzheng
2009-08-10
原文有误,对不住。应该将contentType参数定义在result元素内。如下:
<action name="upload" class="..."> <result type="json"> <param name="contentType" value="text/html"/> </result> </action>