求大佬指點,我想將服務器上的檔案通過瀏覽器下載到本地,但是運行報錯,代碼如下
public void download( HttpServletRequest request, HttpServletResponse response,String path) {
try {
// path是指想要下載的檔案的路徑 此處寫了一個絕對路徑
File file = new File("F:\\wordTest\\1380336710055714818購置申請單.docx");
// 獲取檔案名
String filename = file.getName();
// 獲取檔案后綴名
String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();
// 將檔案寫入輸入流
FileInputStream fileInputStream = new FileInputStream(file);
InputStream fis = new BufferedInputStream(fileInputStream);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
// 清空response
response.reset();
// 設定response的Header
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
response.addHeader("Content-Length", "" + file.length());
response.setContentType("application/octet-stream");
outputStream.write(buffer);
outputStream.flush();
} catch (IOException ex) {
ex.printStackTrace();
}
}然后運行報錯

斷點跟到outputStream.write(buffer)處發現報錯,求大佬指點
uj5u.com熱心網友回復:
報的錯誤是:could not findacceptable representation.我在我本地環境運行該代碼,無例外。
所以我猜測這個可能是因為spring版本不一樣而導致的問題。
我從網路上查找后,該問題多出現于3.2及以后的版本,大多數3.1版本無此問題。
猜測的方法:給方法添加回傳值,令回傳值暫不為空;
如果不行的話,你可以參考一下這個blog
https://blog.csdn.net/helloman0908/article/details/84654341
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/274269.html
標籤:Web 開發
上一篇:微服務里呼叫檔案上傳服務總是超時
下一篇:大神求助這是怎么回事
