Extjs關於獲取上傳文件的格式和文件名

Extjs通過filefield方式上傳文件如下:

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.');
}
});
}
}
}]
});

默認value顯示的路徑如:C:\fakepath\text.excel,現在需要獲取該文件的類型及名字,並在textfield中顯示,首先在textfield中顯示filefield中value可以使用如下:Ext.getCmp('id').setValue('');,要獲得文件類型,需要拆分C:\fakepath\text.excel,我們以“.”作爲拆分的手段如:

var arr = value.split('.');

var fileExtenstion = arr[arr.length-1];

Ext.getCmp('id').setValue( fileExtension );

就能獲得當前的文件類型,即獲得“excel”,文件名也是如此如下:

var arr = value.split('\\');

var fileName = arr[arr.length-1];

var arr = fileName.split('.');

arr.pop();

Ext.getCmp('id').setValue(  arr );

就能獲得當前的文件名了。

有個小點要注意就是“\”只寫一個斜槓代碼是識別不了的,JS要寫兩個,但不同的代碼對斜槓要求是不同的,下面是個例子:

regex爲\\\\,因爲在java中\\表示一個\,而regex中\\也表示\,所以當\\\\解析成regex的時候爲\\。

發佈了38 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章