Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从ExtJS中的文件字段获取文件?_Javascript_Php_Extjs_Sencha Touch - Fatal编程技术网

Javascript 如何从ExtJS中的文件字段获取文件?

Javascript 如何从ExtJS中的文件字段获取文件?,javascript,php,extjs,sencha-touch,Javascript,Php,Extjs,Sencha Touch,我有ExtJS中的表单面板。使用xtype:filefield 如何获得上传的文件 如果我使用form,我将获取getForm()方法来获取该文件。现在,表单在ExtJS中不可用。 我过去常常得到这样的价值观 var values = form.getValues(); if(form.validate()) { var name = values.name; var desc = values.desc; } 我需要获取并存储到DB的文件字段文件。 在此文件字段中,上载mp3文件

我有ExtJS中的表单面板。使用
xtype:filefield

如何获得上传的文件

如果我使用form,我将获取
getForm()
方法来获取该文件。现在,表单在ExtJS中不可用。 我过去常常得到这样的价值观

var values = form.getValues();
if(form.validate())
{
   var name = values.name;
   var desc = values.desc;
}
我需要获取并存储到DB的文件字段文件。 在此文件字段中,上载mp3文件。
任何人都可以提出解决方案。

您可以使用
FileReader
对象来读取文件。下面是执行此操作的示例代码

Ext.application({
    name : 'Fiddle',

    launch : function() {

        Ext.create('Ext.form.Panel', {
            renderTo: Ext.getBody(),
            fullscreen: true,
            items: [{
                xtype: 'fieldset',
                title: 'My Uploader',
                items: [
                    {
                        xtype: 'filefield',
                        label: "MyPhoto:",
                        name: 'photo'
                    }, {
                        xtype: 'button',
                        text: 'Get File',
                        handler: function(){
                            let file = this.up().down('filefield').el.down('input[type=file]').dom.files[0];
                            var reader = new FileReader();

                            reader.onload = (function(theFile) {
                                return function(e) {
                                    let result = e.target.result;
                                    //process upload with result
                                    alert(result);
                                };
                            })(file);

                            reader.readAsBinaryString(file);
                        }
                    }
                ]
            }]
        });
    }
});
你可以找到小提琴

或者,您可以使用
form.submit()
方法提交表单

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.');
      }
  });
}
你可以找到这个例子,看看 您可以在文件字段上注册一个更改侦听器,并从中获取文件,例如

侦听器:{
更改:函数(字段、文件名){
var fileList=field.fileInputEl.dom.files;
对于(var i=0;i