struts2+jquery.form.js文件上传注意事项

///1,js获取上传文件属性
var fso = new ActiveXObject("Scripting.FileSystemObject");
var filesize = fso.GetFile(file).size;
//ActiveXObject 是ie浏览器支持的特性,其他浏览器不适用
//在使用的时候,需要将所在站点设为可信站点,并将安全级别调低
//其实这么做的目的是 Internet 选项--》自定义级别 中 对ActiveX 控件和插件中的选项设置成启用或提示


///2,用Jquery.form.js实现ajax文件上传(包含文本和文件的混合模式)
//实现原理:form中嵌套iframe的方式进行提交
var options = {
   async:false,
   url:"",
    type:"post",
   //告诉jquery,提交数据包含file属性
            enctype:"multipart/form-data", 
   //统一字符编码,防止乱码
            contentType:"charset=utf-8", 
   success: function(data) {
     alert(data.resultmsg);
     $('#upform').dialog("close");
   },
   error: function(data) {
    $('#upfilebtn').attr("disabled","");
    alert("上传附件失败,请重新选择附件");
   },
   dataType: "json"
 };
$("#upform").ajaxSubmit(options);

//在IE8却发现提示下载文件。
//IE 不支持 contentType 为application/json,在 ajax 上传文件完成后返回 json时 IE 提示下载文件。
//jquery利用的是iframe模式下无刷新上传,而iframe并不能直接获取返回json对象,返回的是一个对象数据流。
//在jquery.form.js这个插件中它的实现是利用返回的responseText来处理。也就是说,你要是返回一个text/html的contentType,那它就
//能接收到,并且对这个返回的数据进行处理。因此,我们返回的不应该是一个json对象,而是一个json字符串!
//所以在java端响应时,我们应该添加


//防止中文乱码
ServletActionContext.getRequest().setCharacterEncoding("utf-8");
//设置ContentType:text/html,让js插件能够处理
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fjza1168

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值