在extjs中如何获取上传文件的内容

时间:2013-04-02 05:37:44

标签: php file-upload extjs4

我正在研究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);
        }
    }
]

});

所以当我尝试使用上面的代码上传animage文件时。上面一行: 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…
 }

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

1 个答案:

答案 0 :(得分:2)

不会从readAsBinaryString返回文件的内容,您必须设置在读取文件内容时将触发的onload回调。

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