日常工作中,一般文件上传都是跟随表单一起提交的,但是遇到form表单中有许多地方有文件上传时这种方式却不是很适用,以下是我工作中用的文件上传方式:
{ xtype: 'fileuploadfield', fieldLabel: '封面图', msgTarget: 'side', anchor: '100%', margin: '0 0 0 0', buttonText: '请选择文件...', listeners: { 'change': function(inputFile){ var fd =new FormData(); fd.append('multipartFiles',inputFile.fileInputEl.dom.files[0]); Ext.Ajax.request({ url: "url", cors:true, useDefaultXhrHeader:false, method:'post', rawData:fd, headers: { "Content-Type":null /* 最重要的部分,将Content-Type设置成null,ExtJs则会由内部的XMLHTTPRequest自动生成包含boundary的Content-Type,否则在使用rawData的情况下,ExtJs会将Content-Type设置成text/plain */ }, success:function (res,opts) { alert('success'); var url = res.data.url; }, failure:function (res,opts) { alert('failure'); } }); } } }