我正在研究extjs + php中的文件上传功能。我想从extjs上传文件或图像,需要将其发送到我在PHP设计的服务器端。在extjs中,我将视图文件的代码设为 -
Ext.define('Balaee.view.kp.dnycontent.Content',
{
extend:'Ext.panel.Panel',
requires:[
'Balaee.view.kp.dnycontent.ContentView'
],
id:'ContentId',
alias:'widget.Content',
title:'This day in a history',
items:[
{
xtype: 'fileuploadfield',
hideLabel: true,
emptyText: 'Select a file to upload...',
id: 'upfile',
//name:'file',
width: 220
}],
buttons:[
{
text: 'Upload',
handler: function () {
var file = Ext.getCmp('upfile').getEl().down('input[type=file]').dom.files[0]; console.log(file);
var reader = new FileReader();
filecontent=reader.readAsBinaryString(file);
console.log(filecontent);
}
}
]
});
所以当我尝试使用上面的代码上传animage文件时。上面一行:
Ext.getCmp('upfile').getEl().down('input[type=file]').dom.files[0];
将文件的信息存储为:
File {
webkitRelativePath: "",
lastModifiedDate: Tue Jul 14 2009 11:02:31 GMT+0530 (India Standard Time),
name: "Koala.jpg",
type: "image/jpeg",
size: 780831…
}
即。检索与文件相关的信息。但是没有检索到实际的文件内容。那么我需要修改什么才能获得实际上传的文件?
答案 0 :(得分:2)
不会从readAsBinaryString
返回文件的内容,您必须设置在读取文件内容时将触发的onload回调。
reader.onload = function (oFREvent) {
console.log(oFREvent.target.result);
};