亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

下載中文名的文件顯示文件不存在,下載不帶中文的能成功

String path = getServletContext().getRealPath("/") + "material/";

String filename = req.getParameter("filename");

File file = new File(path + filename);

if(file.exists()){

//設置相應類型application/octet-stream

resp.setContentType("application/x-msdownload");

//設置頭信息

resp.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");

InputStream inputStream = new FileInputStream(file);

ServletOutputStream ouputStream = resp.getOutputStream();

byte b[] = new byte[1024];

int n ;

while((n = inputStream.read(b)) != -1){

ouputStream.write(b,0,n);


正在回答

2 回答

需要設置編碼: ? ?

resp.setHeader("Content-Disposition", ? ? ? ? ? ? ? ? ? ? ? ?"attachment;filename="+URLEncoder.encode(filename,"utf-8"));

需要導入 ? ? ? ?import java.net.URLEncoder;


0 回復 有任何疑惑可以回復我~

如果沒有對客戶端發送的中文參數進行轉碼,filename從客戶端發過來的值就是亂碼,導致在你服務器目錄下找不到你要的文件,你可以打印一下filename的值到控制臺,我覺得就是編碼問題設置一下(request.setContextType(),request.setEncoding()....不知道有沒有寫錯,你百度一下亂碼問題。)

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

下載中文名的文件顯示文件不存在,下載不帶中文的能成功

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號