Pracuję nad kontrolą przesyłania plików Extjs4. Mam widok z kontrolą przesyłania plików as-Przesyłanie plików za pomocą extjs4
Ext.define('Balaee.view.kp.dnycontent.Content',
{
extend:'Ext.form.Panel',
requires:[
'Balaee.view.kp.dnycontent.ContentView'
],
id:'ContentId',
alias:'widget.Content',
enctype : 'multipart/form-data',
title:'This day in a history',
items:[
{
xtype: 'fileuploadfield',
hideLabel: true,
emptyText: 'Select a file to upload...',
//inputType: 'file',
id: 'upfile',
width: 220
}],
buttons: [{
xtype : 'button',
fieldlabel:'upload',
action:'upload',
name:'upload',
text: 'Upload',
formBind:'true'
}]
});
i odpowiadających im działań w kontrolerze jest-
getUpload : function() {
var file10 = Ext.getCmp('ContentId').getEl().down('input[type=file]').dom.files[0];
var reader = new FileReader();
reader.onload = function(oFREvent) {
fileobj=oFREvent.target.result;
console.log(oFREvent.target.result);
};
}
});
więc powyższa funkcja regulatora jest retriving przesłanego pliku i wyświetla je w formie zakodowanej wewnątrz funkcji onload czytelnika. tj. "console.log (oFREvent.target.result);" wiersz wyświetla dane przesłanego pliku w formacie zakodowanym w konsoli. Muszę wysłać ten plik na serwer. Jestem więc przechodząc powyżej fileobj jako parametr do przechowywania as-
var storeObj=this.getStore('kp.DnycontentStore');
storeObj.load({
params:{
data:fileobj
},
callback: function(records,operation,success){
console.log("send");
},
scope:this
})
ale jego pokazując fileobj jako niezdefiniowanej funkcji reader.onload zewnątrz. Jak wysłać ten plik wraz z jego zawartością na serwer? Czy istnieje inny sposób, aby uzyskać przesłany plik w kontrolerze i wysłać go na serwer. Proszę, niech ktoś mnie poprowadzi.
dlaczego nie wystarczy przesłać formularz? – dbrin
Thanx sir za odpowiedź. Kiedy próbuję przesłać formularz, dodając kod jako- "buttons: [{ xtype:" button ", etykieta pola" upload ", akcja:" upload ", nazwa:" upload ", tekst:" Upload ", formBind : "true", handler: function() { var form = this.up ("formularz"). getForm(); if (form.isValid()) { form.submit ({ adres URL: 'indeks .php/QuestionBank/Qbpaper/getFile ', sukces: funkcja (fp, o) { Ext.Msg.alert ("Sukces", "Twoje zdjęcie" "+ o.result.file +" "zostało przesłane.");}});}}}] " – user1722857
wygląda dobrze, w czym problem? – dbrin