extjs与struts2整合实现文件上传之经历

本文记录了作者使用ExtJS实现文件上传功能的过程及遇到的问题。包括使用textfield的inputType属性设置为“file”尝试文件上传、formpanel的fileUpload属性设置为true的方法尝试,最终通过配置Struts2的result属性解决json数据接收问题。
摘要由CSDN通过智能技术生成

前不久学习了一段时间的extjs,最近要做一个课程设计。学习extjs时候用的是《extjs in action》这本书。

-------------------------此为背景---------------------------------


因为需要一个批量提交的功能 ,所以就想让extjs实现文件上传功能。

第一次google,得到的结果是,直接把 textfield 的 inputType属性设置为:“file”,即可。顺便得之,extjs没有专门的文件上传的组件。

------第一次,失败。原因:能选择文件,但是提交的时候查看firefox的firebug发现选择的文件没有提交。

第二次google,得到的结果,要把formpanel的fileUpload设置为:true。

-----第二次失败。原因:成功上传了文件。后台也能正确的解析,但是返回的json数据无法使用。比如后台返回的:{success:true,msg:'ok'},但是前台总是进入到failure之中。出现的问题是:前台无法接受(或者说是使用)后台返回的json数据。

第三次google,这次历经了很长时间,主要是因为总是不成功,然后就没耐心了。拖了两个星期吧。为了解决这个问题,我用了我那蹩脚的英语在google搜索:how to use extjs upload a file。得到的结果是,extjs的实例程序中有此功能,有一个FileUploadField.js,可以实现文件上传。但是问题依旧没有解决。

最后一次google,发现要在struts2中的result中配置一个属性:<param name="contentType">text/html</param>,目的是为了防止有些浏览器不能正确处理,可能会将服务器端的响应作为文件提示用户进行下载。但是,加上这行代码之后,问题就解决了。


--------------------------分割线------------------------------

经过测试又发现,extjs文件上传,直接把表单提交给一个txt文件,然后txt文件中返回:{success:true},依旧不能进入到前台的success函数处理之中。


具体什么样的内部原因,自己不大清楚。

随手记下,留待以后解决吧……


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值