最近在使用extjs開發一個具備上傳功能的網站,需要使用extjs讀取上傳的json文件。下面是我的實現方法。
Ext.onReady(function(){ Ext.create('Ext.form.Panel', { title: '上傳文件', width: 400, bodyPadding: 10, renderTo: Ext.getBody(), items: [{ xtype: 'filefield', name: 'file', fieldLabel: '選擇文件', labelWidth: 70, msgTarget: 'side', allowBlank: false, anchor: '100%', buttonText: '瀏覽...' }], buttons: [{ text: '上傳', handler: function() { var form = this.up('form').getForm(); if(form.isValid()){ form.submit({ url: 'upload.php', waitMsg: '上傳中...', success: function(form, action) { var response = action.response; var data = Ext.decode(response.responseText); console.log(data); // 上傳成功,輸出json數據 }, failure: function(form, action) { Ext.Msg.alert('錯誤', action.result.msg); } }); } } }] }); });
上述代碼中,我們首先創建了一個form panel,并在其中添加了一個filefield。然后通過form.isValid()方法對文件進行驗證,驗證通過后將數據提交到后臺upload.php文件中。在上傳成功后,使用Ext.decode()方法對上傳的json文件進行解析,輸出數據至console中。