我正在尝试使用 ExtJS4 从uploadfilefield
获取文件内容,但不知道如何?
我有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上看这个EXAMPLE:
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应该如何获取文件的内容?
答案 0 :(得分:2)
在HTML5之前,在将文件内容上传到服务器并从那里处理之前,无法访问文件内容。没有先提交表单,浏览器就无法对此文件执行任何操作。
编辑:
根据Neil McGuigan上面的评论,看起来HTML5 FileReader API可能会执行您需要的一些操作。我从未使用过这个,但有更多信息可供她使用:https://developer.mozilla.org/en-US/docs/Web/API/FileReader/
答案 1 :(得分:-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'];
// ....
}