我想通過使用Ext.Direct的表單提交上傳文件,但是Ext.direct正在發送我的請求作爲類型'application/json'而不是' multipart/form-data'Ext.Direct文件上傳 - 表單提交的類型application/json
這是我的表格。
{
xtype: 'form',
api: {
submit: 'App.api.RemoteModel.Site_Supplicant_readCSV'
},
items: [
{
xtype: 'filefield',
buttonOnly: false,
allowBlank: true,
buttonText: 'Import CSV'
}
],
buttons:
[
{
text: 'Upload',
handler: function(){
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
waitMsg: 'Uploading...',
success: function(form, action){
console.log(action.result);
}
});
}
}
}
]
},
在HTTP請求上,它檢查以查看請求選項是否爲表單上載。
if (me.isFormUpload(options)) {
它來到這裏
isFormUpload: function(options) {
var form = this.getForm(options);
if (form) {
return (options.isUpload || (/multipart\/form-data/i).test(form.getAttribute('enctype')));
}
return false;
},
getForm: function(options) {
var form = options.form || null;
if (form) {
form = Ext.getDom(form);
}
return form;
},
然而,選擇看上去像這樣
{
callback: function (options, success, response) {
jsonData: Object
action: "RemoteModel"
data: Array[1]
0: form
length: 1
__proto__: Array[0]
method: "Site_Supplicant_readCSV"
tid: 36
type: "rpc"
__proto__: Object
scope: constructor
timeout: undefined
transaction: constructor
}
而且也沒有直接的形式配置,但它在jsonData.data存在[0]。所以它不會將其設置爲multipart/form-data類型,並將其作爲類型application/json發送。 我在做什麼錯?爲什麼表單沒有正確提交?
編輯 -我看到很多關於Ext.Direct的'formHandler'配置的討論?我被帶領認爲這個配置可以解決我的問題。但我不知道這應該存在。如果我能找到解決方案,我會更新我的帖子。
解決方案 -簡單地增加/ formHandler /到PARAMS結束設置標誌,解決了我的問題。百思不得其解。
Supplicant.prototype.readCSV = function(params,callback, request, response, sessionID/*formHandler*/)
{
var files = request.files;
console.log(files);
};
我正在使用Nodejs。 formHandler會進入Supplicant模型嗎? – Alpenglow 2014-08-27 22:21:25
@QuantumScripting請參閱編輯答案。 – 2014-08-27 22:29:49
我很困惑,爲什麼在參數末尾添加描述符是解決方案......但它工作。我想我需要對此事做更多的研究。 – Alpenglow 2014-08-28 15:09:25