2013-04-02 80 views
5

我正在使用extjs + php的文件上傳功能。我想從extjs上傳文件或圖像,並需要將其發送到我在PHP設計的服務器端。在extjs我有查看文件的代碼爲 -在extjs中如何獲取上傳文件的內容

Ext.define('Balaee.view.kp.dnycontent.Content', 
{ 
    extend:'Ext.panel.Panel', 
    requires:[ 
       'Balaee.view.kp.dnycontent.ContentView' 
       ], 
    id:'ContentId', 
    alias:'widget.Content', 
    title:'This day in a history', 
    items:[ 
    { 
     xtype: 'fileuploadfield', 
     hideLabel: true, 
     emptyText: 'Select a file to upload...', 
     id: 'upfile', 
     //name:'file', 
     width: 220 
}], 
    buttons:[ 
    { 
     text: 'Upload', 
     handler: function() { 
      var file = Ext.getCmp('upfile').getEl().down('input[type=file]').dom.files[0];   console.log(file); 
      var reader = new FileReader(); 
      filecontent=reader.readAsBinaryString(file); 
      console.log(filecontent); 
     } 
    } 
] 

});

所以,當我試圖上傳與上述行上述code.The animage文件:

File { 
    webkitRelativePath: "", 
    lastModifiedDate: Tue Jul 14 2009 11:02:31 GMT+0530 (India Standard Time), 
    name: "Koala.jpg", 
    type: "image/jpeg", 
    size: 780831… 
} 

即有關文件的信息檢索: Ext.getCmp('upfile').getEl().down('input[type=file]').dom.files[0];存儲文件的信息。但實際的文件內容沒有得到檢索。那麼,我需要修改哪些內容以獲取實際上傳的文件?

回答

2

該文件的內容沒有從readAsBinaryString返回,您必須設置讀取文件內容時將觸發的onload回調。

reader.onload = function (oFREvent) { 
    console.log(oFREvent.target.result); 
}; 
+0

感謝名單先生......我得到其文件中的所有內容... – user1722857

+0

@ user1722857你打算上傳串到服務器,企圖通過AJAX上傳的文件?如果是這樣,你應該使用[FormData](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData)。 – Musa

+1

其實先生現在我得到了什麼發送到服務器端的困難。是否我應該只發送文件及其相關信息到服務器,我通過「Ext.getCmp('upfile')。getEl()。down('input [type = file]')。dom.files [0]; 「但是文件的內容將如何轉移到服務器端?將上傳的文件及其內容傳輸到服務器端需要做哪些修改?請先生,你可以指導我 – user1722857

相關問題