5

我正在研究 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);” 行在控制台中以编码格式显示上传文件的数据。我需要将此文件发送到服务器端。所以我将上面的fileobj作为参数传递给存储为-

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

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

4

1 回答 1

1

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

还有示例 PHP 文件上传脚本: http ://www.w3schools.com/php/php_file_upload.asp

于 2013-04-12T07:03:04.430 回答