2013-04-10 18 views
5

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.

+0

dlaczego nie wystarczy przesłać formularz? – dbrin

+0

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

+0

wygląda dobrze, w czym problem? – dbrin

Odpowiedz

Powiązane problemy