Ich versuche, eine Datei (ab sofort von jeder Erweiterung) in extjs hochzuladen. Ich habe ein Modell und ein Geschäft. Der Datei-Upload erfolgt über ein Fenster und ich habe kein Formular im Fenster. Alle Beispiele, die ich im Netz versucht habe, sind mit form.submit(). Ich benutze stattdessen und Ajax Anruf wie unten, um die Daten an den Server zu senden.Datei-Upload in Extjs 4.2 ohne 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');
}
});
Die Datensätze zum Senden der Daten wird wie folgt erhalten.
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);
Während der Aufzeichnung im Modell Einstellung, ich den Code unten verwenden ..
var rec = Ext.create('QAF.model.MyModel');
rec.set('modelField',Ext.getCmp('fileUploadCompID').value);
erhielt ich einen 500 Statusfehler mit der Antwort "Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.commons.CommonsMultipartFile]"
ich bin sicher, dass dies wegen der Art, wie ich den Wert auf das Modell als Ext.getCmp('fileUploadCompID').value
gibt den Dateinamen. Lassen Sie mich wissen, wie Sie die Datei für das Modell festlegen und welchen Datentyp ich für das Feld im Modell angeben muss.
Unten ist, wie ich versuche, die Datei in der Federsteuerung abzurufen.
@RequestMapping (value = "/qaf/saveSetupDetails.action")
public @ResponseBody
void saveSetupDetails(@RequestParam CommonsMultipartFile data)throws Exception{
log.info("Enter into saveSetupDetails method..." + data.getOriginalFilename());
}
Bitte lassen Sie mich wissen, was ich falsch mache und was getan werden muss, um dieses Problem beheben ...
Hallo Siehe ... Sorry für die Verzögerung in der Antwort. Ich werde das testen .. Vielen Dank. – CARTIC