extjsにファイルをアップロードしようとしています。私にはモデルと店があります。ファイルのアップロードはウィンドウから発生し、私はウィンドウにフォームがありません。私がネットで試したすべての例は、form.submit()です。代わりに以下のようにAjaxを使用してデータをサーバーに送信します。extjs 4.2でのファイルのアップロードform.submit()なし
Ext.Ajax.request({
url : 'qaf/saveSetupDetails.action',
params : {
'data' : recordsToSend
},
failure : function(response){
//console.log('error connecting controller');
},
success : function(response){
//console.log('successfully submitted');
}
});
データに送信するレコードは次のとおりです。
var store = Ext.getStore('SomeStore');
var modifiedRecords = store.getModifiedRecords();
var recordsToSend = [];
if(modifiedRecords.length > 0){
Ext.each(modifiedRecords, function(record){
recordsToSend.push(record.data);//I'm sure that this is so dump but this is how I do it for other records which are string and not sure how to do it for a file...
});
}
Ext.USE_NATIVE_JSON = true;
recordsToSend = Ext.encode(recordsToSend);
モデルのレコードを設定している間、私は以下のコードを使用して...
var rec = Ext.create('QAF.model.MyModel');
rec.set('modelField',Ext.getCmp('fileUploadCompID').value);
私は応答"Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.commons.CommonsMultipartFile]"
で500のステータスエラーを受け取った私は、これがあることを確信しています私がモデルに値を設定する方法のために、Ext.getCmp('fileUploadCompID').value
はファイル名を与えます。ファイルをモデルに設定する方法と、モデルのフィールドに指定するデータタイプを教えてください。
以下は、スプリングコントローラでファイルを取得する方法です。
@RequestMapping (value = "/qaf/saveSetupDetails.action")
public @ResponseBody
void saveSetupDetails(@RequestParam CommonsMultipartFile data)throws Exception{
log.info("Enter into saveSetupDetails method..." + data.getOriginalFilename());
}
こんにちは、私のデモを参照してください。応答遅れのために。私はこれをテストします.. – CARTIC