使用extjs4上传文件

时间:2013-04-10 06:17:17

标签: file-upload extjs4

我正在使用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'

    }]
});

控制器中的相应操作是 -

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);

        };
        }
    });

因此控制器的功能正在重新上传文件并以编码格式在读者的onload功能中显示。即“console.log(oFREvent.target.result);” line在控制台中以编码格式显示上传文件的数据。我需要将此文件发送到服务器端。所以我将fileobj作为参数传递给 -

var storeObj=this.getStore('kp.DnycontentStore');
         storeObj.load({
         params:{
         data:fileobj
         },
         callback: function(records,operation,success){
           console.log("send");
         },
         scope:this
         })

但是它将documentobj显示为未定义的reader.onload函数。那么如何将此文件及其内容发送到服务器端?有没有其他方法可以在控制器中获取上传文件并将其发送到服务器。请有人指导我。

1 个答案:

答案 0 :(得分:1)

我不知道如何在php端处理fileuplaod,但是服务器的返回响应需要是text / html编码 请参阅以下文档: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.Basic-method-hasUpload

也是示例PHP fileupload脚本: http://www.w3schools.com/php/php_file_upload.asp