6

我正在研究 extjs+php 中的文件上传功能。我想从 extjs 上传文件或图像,并需要将其发送到我正在用 PHP 设计的服务器端。在 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);
        }
    }
]

});

因此,当我尝试使用上述代码上传图像文件时。上面的行: Ext.getCmp('upfile').getEl().down('input[type=file]').dom.files[0];将文件的信息存储为:

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

即检索与文件相关的信息。但是实际的文件内容没有被检索到。那么我需要修改什么才能获得实际上传的文件?

4

1 回答 1

3

不返回readAsBinaryString文件内容,需要设置读取文件内容时触发的 onload 回调。

reader.onload = function (oFREvent) {
    console.log(oFREvent.target.result);
};
于 2013-04-02T05:48:28.750 回答