我正在使用extjs2.0.1。我正在使用filefield插件来获取文件uplaod功能。对于上传按钮,我希望将content-Type设置为'multipart / form-data'。现在在fiddler我可以看到内容类型设置为Content-Type:application / x-www-form-urlencoded。 我怎样才能做到这一点?
我的代码如下:
Ext.onReady(function() {
Ext.QuickTips.init();
var uploadFile={
xtype : 'fieldset',
title : 'Search',
autoHeight : true,
items : [{
xtype : 'fileuploadfield',
emptyText : 'select file',
fieldLabel : 'file',
id : 'file-path',
buttonCfg : {
text : 'browse'
}
}],
buttons : [{
text : 'upload',
handler : function() {
Path = fp.form.findField('file-path').getValue();
var box = Ext.MessageBox.wait('uploading file ','please_wait');
if (fp.getForm().isValid()) {
Ext.Ajax.request({
url : 'uploadFile.jsp',
params:'file-path='+Path,
method : 'POST',
waitMsg : 'Uploading your file...',
success : function(response) {
box.hide();
Ext.Msg.alert("Success","Upload Successfull!");
},
failure : function() {
box.hide();
Ext.Msg.alert("Failure","Upload Failed!");
}
});
}
}
}]
};
var fp = new Ext.FormPanel({
autoHeight : true,
bodyPadding: 10,
margin : '0 0 20',
frame : 'true',
renderTo : 'addvoiceline',
items : [
uploadFile
]
});
});
答案 0 :(得分:0)
在extjs3中我会通过在表单配置中将fileUpload
设置为true来实现。也许这可以在extjs2中使用。
答案 1 :(得分:0)
使用headers
属性。
proxy: {
type: 'ajax',
url: "../search",
actionMethods: {create: "POST", read: "POST", update: "POST", destroy: "POST"},
headers: { 'Content-Type': 'multipart/form-data' },
limitParam: false,
startParam: false,
pageParam: false,
extraParams: JSON.stringify({
rows: pageSize,
role: "Admin",
index: myIndex,
question: searchPhrase
})
将其标题设置如下:
headers: { 'Content-Type': 'multipart/form-data' },
作为代码的一部分,它如下所示(headers
已添加):
Ext.Ajax.request({
url : 'uploadFile.jsp',
params:'file-path='+Path,
method : 'POST',
headers: { 'Content-Type': 'multipart/form-data' },
waitMsg : 'Uploading your file...',
success : function(response) {
box.hide();
Ext.Msg.alert("Success","Upload Successfull!");
},
failure : function() {
box.hide();
Ext.Msg.alert("Failure","Upload Failed!");
}
});