如何瀏覽和讀取文件(XML),並顯示它在Ext textarea的?上傳和分機
- 是否有可能在客戶端本身做功能?
我已經與Java試圖通過上傳XML文件並讀取它,併發送響應作爲XML字符串,但我無法在前端接收數據(獲得異常「返回的eval(」(「+ JSON + 「)」)「在
extjs.all
)?我在分機代碼
var win = new Ext.Window({ layout: 'fit', title: 'XML Upload Window', id: 'winFileRead', resizable: false, modal: true, closeAction: 'close', closable: true, plain: true, items: [{ xtype: 'form', id: 'frmFileRead', fileUpload: true, width: 500, frame: true, monitorValid: true, autoHeight: true, bodyStyle: 'padding: 10px 10px 0 10px;', labelWidth: 50, defaults: { anchor: '95%', allowBlank: false, msgTarget: 'side' }, items: [{ xtype: 'fileuploadfield', id: 'verFileReadCmp', emptyText: 'Select a File to import', fieldLabel: 'File', name: 'file', buttonCfg: { text: '', iconCls: 'upload-icon' } }], buttons: [{ formBind: true, text: 'Upload', handler: function() { var fp = Ext.getCmp('frmFileRead'); if (fp.getForm().isValid()) { fp.getForm().submit({ url: 'viewXml.do', params: {}, method: 'POST', waitMsg: 'Uploading your file...', success: function(fp, o) { if (Ext.decode(o.response.responseText).success) { //Set the XML value to the textarea. Ext.getCmp('textareaXML').setValue(Ext.decode(o.response.responseText).message); } else { Util.showAlert('Err', Ext.decode(o.response.responseText).message); } }, failure: function(response, options) { Util.showAlert('Err', response.responseText); }, exception: function(a, b, c, d) {} }); } } }, { text: 'Reset', handler: function() { var fp = Ext.getCmp('frmFileRead'); fp.getForm().reset(); } }] }]
}); win.show();
***************************** Java **************************** protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws ServletException, IOException { UploadFileTO uploadFileTO = (UploadFileTO) command; List<XmlTO> al=new ArrayList<XmlTO>(); Map<String,String> model = new HashMap<String,String>(); MultipartFile file = uploadFileTO.getFile(); InputStream inputStream = null; String xmlString=""; String xml=null; if (file.getSize() > 0) { inputStream = file.getInputStream(); int readBytes = 0; byte[] buffer = new byte[10000]; while ((readBytes = inputStream.read(buffer, 0 , 10000))!=-1) { xml=new String(buffer, 0, readBytes); xmlString=xmlString.concat(xml); } inputStream.close(); } if (!xmlString.equals("")){ System.out.println(xmlString); model.put("result", "{success:true, message: \""+xmlString+"\"}"); }else{ model.put("result", "{success:false, message: \"File upload error.\"}"); } return new ModelAndView("index", model); } **************************** Exception message in JSON evaluation. ******************************* <TABLE width=400> <P style="FONT: 13pt/15pt verdana">The XML page cannot be displayed <P style="FONT: 8pt/11pt verdana">Cannot view XML input using style sheet. Please correct the error and then click the <A href="javascript:location.reload()" target=_self>Refresh</A> button, or try again later. <HR> <P style="FONT: bold 8pt/11pt verdana"> Invalid at the top level of the document. Error processing resource 'http://XXXXXXXX/viewXml.do'. </P><PRE style="LINE-HEIGHT: 12pt; FONT-VARIANT: normal; FONT-STYLE: normal; FONT-SIZE: 10pt; FONT-WEIGHT: normal" ><FONT color=blue></FONT> </PRE> </P> <TBODY> </TBODY> </TABLE>
- ,如果它是不正確的方法,請喜歡或提供支持主流瀏覽器(IE,火狐,Chrome瀏覽器)的最佳方法是什麼?
你能證明你的XML返回的? –
感謝烏拉圭回合答覆的人,我會去檢查烏爾3點,上面我已經添加示例XML。再次感謝。 – vineth