我的extjs代码像http://www.objis.com/formationextjs/lib/extjs-4.0.0/docs/api/Ext.form.field.File.html
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.');
}
});
}
}
}]
});
my photo-upload.php file
echo "{success:true}";
但是当成功 .结果。File show undefined。我想成功后会显示文件名。
如何在成功后显示文件名呢?谢谢
您只是返回"{success:true}"
,这甚至不是有效的JSON,但期望ExtJS为您提供更多的数据?
尝试返回JSON,如
{ "success": true, "file": "filename" }
,以便在结果中有一个客户端可以读取的文件属性
只是返回正确的json结构在前端eval。
要将文件名显示为消息,你不需要从后端返回值,它已经可用了。参考下面的代码
var fileUploadComp =//eg: Ext.getCmp('DictUploadField');var fileName = fileUploadComp.getValue();
把这个fileName
放在你的留言里。
谢谢。
注意:服务器响应类型应为"text/html"。
return Json(new {
success = true,
msg = "Your file has been uploaded"
}, "text/html");
现场演示在这里