Próbuję przesłać plik (od teraz dowolnego rozszerzenia) w extjs. Mam model i sklep. przesyłanie plików odbywa się z poziomu okna i nie mam formularza w oknie. Wszystkie przykłady, które wypróbowałem w sieci są w form.submit(). Zamiast tego używam połączenia Ajax i jak poniżej, aby wysłać dane do serwera.Przesyłanie plików w extjs 4.2 bez 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');
}
});
Dane do wysłania danych są przedstawione poniżej.
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);
Podczas ustawiania rekord w modelu używam poniższy kod ..
var rec = Ext.create('QAF.model.MyModel');
rec.set('modelField',Ext.getCmp('fileUploadCompID').value);
Otrzymałem błąd 500 stanu z odpowiedzią "Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.commons.CommonsMultipartFile]"
Jestem pewien, że jest to ze względu na sposób, w jaki ustawiam wartość dla modelu, gdy Ext.getCmp('fileUploadCompID').value
podaje nazwę pliku. Proszę dać mi znać, jak ustawić plik do modelu i jaki typ danych muszę określić dla pola w modelu.
Poniżej znajduje się sposób, w jaki próbuję pobrać plik w kontrolerze sprężyn.
@RequestMapping (value = "/qaf/saveSetupDetails.action")
public @ResponseBody
void saveSetupDetails(@RequestParam CommonsMultipartFile data)throws Exception{
log.info("Enter into saveSetupDetails method..." + data.getOriginalFilename());
}
Proszę dać mi znać, co robię źle i co należy zrobić, aby rozwiązać ten problem ...
Hi ... Przepraszam za opóźnienie w odpowiedzi. Testuję to .. dzięki dużo ... – CARTIC