ext ajax 判断文件是否存在,Ext ajax上传文件

上传文件的时候用ajax是不能实现的,因为文件传递安全性方面的考虑,ajax只能将文件名传递到后台,并不能将文件本身传递给后台,要在extjs实现文件上传必须采用在form中提交的方式,不过为了实现类似于ajax的用户体验,可以在配置项中添加fileUpload:true的方式,来实现异步提交,而不必出现页面跳转的方式。

采用Ext ajax提交form,并设置上传参数

Ext.Ajax.request({

url : "upload.action",isUpload : true,form : "upload",success : function(response) {

var jsonObj = Ext.JSON.decode(response.responseText);

if (0 == jsonObj.result)

alert("上传成功");

else

alert("上传失败");

}

});后台使用的是struts2架构,只需要在对应的action类中定义同名的File参数获取文件信息

private File image;

public File getImage(){

return image;

}

public void setImage(File image){

this.image = image;

}然后再对应的action处理方法中直接对image对象进行操作

public String upload() throws Exception{

if (map != null && image.isFile()){

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(image));

byte[] buff = new byte[(int) map.length()];

bis.read(buff);

result = 0;

return SUCCESS;

}

else{

result = 1;

return ERROR;

}

}操作结果以json形式返回给页面,result值为0表示成功,1表示失败。但是发现返回的json数据被封转多一个

标签
{"result":0}

这是由于浏览器自动给返回结果封装成html,详细可看Ext说明文档http://docs.sencha.com/ext-js/4-0/#/api/Ext.form.Basic-method-hasUpload

解决方法是将返回结果的Content-type设置为text/html,这样浏览器就不会再加html标签,在struts2中需要在struts.xml中对返回结果增加Content-type说明。

text/html

result

text/html

result

总结

以上是编程之家为你收集整理的Ext ajax上传文件全部内容,希望文章能够帮你解决Ext ajax上传文件所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值