您好,登錄后才能下訂單哦!
這篇文章主要介紹使用Java實現文件點擊沒反應的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
jsp頁面鏈接,點擊訪問action用IO流去下載服務器上的文件,問題是任憑怎么點擊都沒反應,日志也不報錯。
前臺ajax代碼
Ext.Ajax.request({ url : '/yjy/training/TrainingTimeAction.do?method=downLoadAttchById', params : { timeId : timeids }, success : function(response,options){ var result = Ext.util.JSON.decode(response.responseText); Ext.Msg.alert("下載成功"); }, failure :function(response,options){ var result = Ext.util.JSON.decode(response.responseText); Ext.Msg.alert("下載失敗"+result.message); } });
后臺action代碼
String timeId = request.getParameter("timeId"); String sql = "select doc_name from CPER.EHRTRAIN_item_DOCUMENT where item_id = ?"; DbHelper dbHelper = new DbHelper(); Object[] params = new Object[]{timeId}; String fileName = (String)dbHelper.runSQLScalar(sql, params); String filePath = ServerPathUtil.getPathRoot()+"WEB-INF/cache/train_item_file/train_item_file_"+timeId+"/"+fileName; File file = new File(filePath); if(!file.exists()){ logger.debug("文件不存在"); throw new IOException("the file not exists"); } response.setContentLength((int) file.length()); OutputStream o = response.getOutputStream(); byte b[] = new byte[5000]; //response.setContentType("application/x-msdownload"); response.setContentType("application/vnd.ms-excel"); response.setContentLength((int)file.length()); response.setHeader("Content-Disposition","attachment; filename="+fileName); FileInputStream in = new FileInputStream(file); int n; while ((n = in.read(b)) != -1) { o.write(b, 0, n); } in.close(); }catch(Exception e){ e.printStackTrace(); }
解決方法:文件的下載,在前臺請求的時候,只能是form表單請求,或者用window.open的方式,最后我采用了window.open的方式
window.open('/yjy/training/TrainingTimeAction.do?method=downLoadAttchById&timeId=' + timeids);
注:采用這種方式頁面會彈出一個空白窗口,下載之后窗口自動關閉,如果不想顯示這個窗口,使用form提交的方式
以上是“使用Java實現文件點擊沒反應的方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。