我是extjs的新手。请帮我删除filefield中的伪路径问题。我不想得到确切的路径。删除“fakepath”字符串对我来说没问题。代码运行完美但路径显示为C:\ fakepath .... 我创建了一个单独的窗口,以便上传文件。在我的情况下,应用程序应该有一个单独的窗口作为从菜单中选择一个选项的结果。 这是我的代码的crateWindow函数:
createWindow: function() {
var desktop = teamApp.getDesktop();
var win = desktop.getWindow(this.windowId + '_win');
if(!win) {
win = desktop.createWindow({
id: this.windowId + '_win',
title: 'Upload a Audio',
iconCls: 'icon-upload-picture',
height:150,
width: 500,
layout: 'fit',
renderTo: Ext.getBody(),
items:
{
xtype: 'panel',
frame:true,
bodyPadding: '10',
items: [{
xtype: 'filefield',
id: 'form-file',
labelWidth: 100,
//emptyText: 'Select an audio file',
fieldLabel: 'Audio File',
name: 'file-path',
fieldWidth: 250,
allowBlank: false,
anchor: '100%',
buttonText: 'Browse'
}],
buttons: [{
text: 'Save',
handler: function(){
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
//url: 'file-upload.php',
waitMsg: 'Uploading your Audio file...',
success: function(fp, o) {
msg('Success', 'Processed file "' + o.result.file + '" on the server');
}
});
}
}
}]
}
})
}
win.show();
return win;
}
答案 0 :(得分:1)
据我所知,根据http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.form.field.File
的文件,你不能这样做由于没有安全的跨浏览器方式以编程方式设置文件输入的值,因此未实现标准的Field setValue方法。 getValue方法将返回一个依赖于浏览器的值;有些只有文件名,有些有完整路径,有些则使用假路径。
<强>更新强>
您可以做的是将fieldWidth设置为零,并在文件字段之前添加另一个文本字段。您可以将此文本字段的值设置为用户通过监听文件字段更改并从最后一个索引中解析值到最后一个选择的文件名。