2

我正在尝试uploadfilefield使用ExtJS4获取文件内容,但不知道如何?

我有这个代码uploadfilefield

{
    xtype: 'fileuploadfield',
    buttonText : 'Upload CSV',
    buttonConfig:
    {
        icon: 'images/upload.png',
        tooltip: 
        {
            text: 'some hints',
            width: 200
        }
    },
    buttonOnly: true,
    listeners: 
    {
        'change': function(fb, v)
        {
            // v returns the filename
            // HOW CAN I GET THE FILE CONTENT?
        }
    }
}    

我在想也许fb有内容,但alert(JSON.stringify(fb))给了我一个关于fb成为圆形对象的错误。

我猜必须有其他方式/事件。我还想在对话框上按打开后立即获取文件内容。我不能使用提交按钮来执行此操作。

感谢我的 StackOverflowers 伙伴 ;)

附录:

我正在查看Sencha上的这个示例:

Ext.create('Ext.form.Panel', {
    title: 'Upload a Photo',
    width: 400,
    bodyPadding: 10,
    frame: true,
    renderTo: Ext.getBody(),
    items: [{
        xtype: 'filefield',
        name: 'photo',
        fieldLabel: 'Photo',
        labelWidth: 50,
        msgTarget: 'side',
        allowBlank: false,
        anchor: '100%',
        buttonText: 'Select Photo...'
    }],

    buttons: [{
        text: 'Upload',
        handler: function() {
            var form = this.up('form').getForm();
            if(form.isValid()){
                form.submit({
                    url: 'photo-upload.php',
                    waitMsg: 'Uploading your photo...',
                    success: function(fp, o) {
                        Ext.Msg.alert('Success', 'Your photo "' + o.result.file + '" has been uploaded.');
                    }
                });
            }
        }
    }]
});

传递给“photo-upload.php”的是什么?这个 php 应该如何获取文件的内容?

4

2 回答 2

2

在 HTML5 之前,在将文件内容上传到服务器并从那里处理之前,无法访问文件内容。如果不先提交表单,浏览器将无法对该文件执行任何操作。

编辑

从上面 Neil McGuigan 的评论来看,HTML5 FileReader API 似乎可以完成您需要的一些事情。我从来没有使用过这个,但这里有更多信息:https ://developer.mozilla.org/en-US/docs/Web/API/FileReader/

于 2013-06-28T19:06:34.863 回答
-1

我在这里找到了答案extjs file uploader folder(为我的应用做了一些修改)

$returnResponse = $_REQUEST['returnResponse'];
    sleep(1);
    if ($returnResponse != "") 
    {
        header('HTTP/1.0 '.$returnResponse.' Server status', true, $returnResponse);
        echo '{success:false, message:"File could not be uploaded to server."}}';
    } 
    else 
    {
        $file      = $_FILES['filedata-inputEl'];
        $fileName  = $file['name'];
        $fileSize  = $file['size'];
        $temp_file = $file['tmp_name'];
 // ....

    }
于 2013-07-02T03:06:21.137 回答