Javascript 如何从ExtJS中的文件字段获取文件?
我有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文件
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