Sto provando a caricare un file (come ora di qualsiasi estensione) in extjs. Ho una modella e un negozio. il caricamento del file avviene da una finestra e non ho un modulo nella finestra. Tutti gli esempi che ho provato in rete sono con form.submit(). Io invece uso e Ajax chiamiamo come sotto per inviare i dati al server.Caricamento file in extjs 4.2 senza forma.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');
}
});
I record per inviare i dati sono ottenuti come di seguito.
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);
Mentre stabilendo il record nel modello, io uso il codice seguente ..
var rec = Ext.create('QAF.model.MyModel');
rec.set('modelField',Ext.getCmp('fileUploadCompID').value);
ho ricevuto un errore 500 di stato con la risposta "Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.commons.CommonsMultipartFile]"
Sono sicuro che questo è a causa del modo in cui imposto il valore sul modello come Ext.getCmp('fileUploadCompID').value
fornisce il nome del file. Per favore fatemi sapere come impostare il file sul modello e quale tipo di dati devo specificare per il campo nel modello.
Di seguito è come si tenta di recuperare il file nel controller di primavera.
@RequestMapping (value = "/qaf/saveSetupDetails.action")
public @ResponseBody
void saveSetupDetails(@RequestParam CommonsMultipartFile data)throws Exception{
log.info("Enter into saveSetupDetails method..." + data.getOriginalFilename());
}
Si prega di farmi sapere quello che sto facendo male e che cosa deve essere fatto per risolvere il problema ...
Hi ... Siamo spiacenti per il ritardo nella risposta. Lo verificherò ... grazie mille – CARTIC