首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

jquery 插件ajaxfileupload与struts2结合 实现异步下传图片

2012-10-06 
jquery 插件ajaxfileupload与struts2结合实现异步上传图片?? ? ? 因为项目需要,想实现一个异步上传图片的

jquery 插件ajaxfileupload与struts2结合 实现异步上传图片

?? ? ? 因为项目需要,想实现一个异步上传图片的功能。当然这时struts2自带的fileupload拦截器不能用了。

网上搜了下,基本都是用插件来实现了,我就随便选择了一个简单的插件-ajaxfileupload来实现、

?

先构架出struts2的框架就不说了,无非那5个常用的jar包导入而已。因为是jquery的插件,因此需要添加jquery库文件以及核心文件ajaxfileupload.js,下面附件中会有这个js文件。写一个相当简单的上传类:

?

?

这里大家可能注意到:我的action中的方法没有返回值,因为我用ServletActionContext.getResponse().getWriter().write()直接返回给jquery回调函数需要的参数,所以没用struts2

的必须返回值,当然你也可以有返回值none等。

?

重点解析:

?? 1、网上有说需要用struts-json.jar,我观察发现他们使用这个jar文件无非是想返回jquery的回调函数一个json字符串而已。因此我使用:ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");

?? 2、注意返回字符串的格式:必须是一个json格式的字符串,并且为"{msg:''}"这样类型。

?

----------------------------------------------------------

?

网上有很多人问,ajaxfileupload是否可以添加自定义参数支持,我的回答是:完全可以。只不过需要我们手动自己添加这样的支持,看了源代码,它也是封装了一个form表单,

咱们把需要的参数添加进去不就大功告成了嘛、说整就整、看代码:

?
这两块代码稍作修改,即可添加自定义参数支持、那么ajaxfileupload的js中只需要添加一个参数:data:{},就可以了。注意它是一个对象。
?
注意: 附件我就不改了,大家自己稍微修改下即可使用。 1 楼 gold__sun 2012-08-25   谢谢你分享这个方法的使用,这个方法解决了不同浏览器获取不到绝对路径的问题,灰常感谢啊

热点排行