//下載
response.setContentType("application/x-msdownload");
String filename = "測試.zip";
String iso_filename = SysParameter.parseGBK(filename);
response.setHeader("Content-Disposition",
"attachment;filename=" + iso_filename);
ServletOutputStream op = response.getOutputStream();
op.write(ab);
op.flush();
op.close();
SysParameter.parseGBK 方法:
// 將GBK字元轉化為ISO碼
public static String parseGBK(String sIn) {
if (sIn == null || sIn.equals(""))
return sIn;
try {
return new String(sIn.getBytes("GBK"), "ISO-8859-1");
} catch (UnsupportedEncodingException usex) {
return sIn;
}
}
Ⅱ java下載文件的中文名 為什麼要用 new String(fileName.getBytes("gb2312"),"iso8859-1");原因是什麼
ISO8859-1是頁面上數據傳輸的格式,
new String(fileName.getBytes("gb2312"),"iso8859-1");
gb2312是你java項目格式(根據實際項目變更),目的是為了將中文文件名正確顯示在頁面上。
Ⅲ java文件下載改名
要重新設置contentType,如application/octet-stream,再加版一個權filename
filename="XXXXX.txt";
response.setHeader("Content-Disposition", "attachment; filename="+filename);
Ⅳ java 下載文件設置文件名
怎麼的下載方式、方法。
你在後台設置一個,
<%
response.setContentType(fileminitype);
response.setHeader("Location",filename);
response.setHeader("Cache-Control", "max-age=" + cacheTime);
response.setHeader("Content-Disposition", "attachment; filename=" + filename); //filename應該是編碼後的(utf-8)
response.setContentLength(filelength);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(filepath);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;
%>
Ⅳ java完成批量下載時,壓縮文件怎麼命名
看你的代碼應該下載zip文件,對應的contentType 是application/x-zip-compressed
getResponse().setContentType("application/octet-stream");修改為getResponse().setContentType("application/x-zip-compressed");
Ⅵ java 獲得http下載文件的真實名稱
importjava.net.*;
importjava.io.*;
publicclassURLConnectionDemo{
publicstaticvoidmain(String[]args)throwsException{
=newURL("http://www.scp.e.cn/pantoschoolzz/BG/Bord/Message/DownloadMessageAttachment.aspx?ID=215");
URLConnectionuc=url.openConnection();
StringfileName=uc.getHeaderField(6);
fileName=URLDecoder.decode(fileName.substring(fileName.indexOf("filename=")+9),"UTF-8");
System.out.println("文件名為:"+fileName);
System.out.println("文件大小:"+(uc.getContentLength()/1024)+"KB");
Stringpath="D:"+File.separator+fileName;
FileOutputStreamos=newFileOutputStream(path);
InputStreamis=uc.getInputStream();
byte[]b=newbyte[1024];
intlen=0;
while((len=is.read(b))!=-1){
os.write(b,0,len);
}
os.close();
is.close();
System.out.println("下載成功,文件保存在:"+path);
}
}
//輸出內容:
文件名為:090602、09-10(1)校歷.xls
文件大小:42KB
下載成功,文件保存在:D: 90602、09-10(1)校歷.xls
Ⅶ 我用java做了一個通過url地址下載指定文件的功能,文件名可能包含中文,IE正常,火狐失敗.
您好!很高興為您答疑!
火狐下您可以安裝Firebug檢查頁面代碼,它集HTML查看和編輯、Javascript控制台、網路狀況監視器於一體,是開發JavaScript、CSS、HTML和Ajax的得力助手。
您可以在火狐社區了解更多內容。希望我的回答對您有所幫助,如有疑問,歡迎繼續在本平台咨詢。
Ⅷ java項目中,下載時怎樣根據自定義的文件名去下載對象的文件(自定義的文件名和文件本身的名字不一樣)
資料庫里存放文件路徑的表中再添加一個欄位表示資源名稱不就行了。
下載時用戶提交帶有資源名稱參數的請求,收到請求後根據請求的資源名稱參數去資料庫查詢文件的實際位置和名稱,然後用文件的實際路徑和名稱 讀取文件 得到inputstream流,把文件的inputstream寫入給用戶響應的response的outputstream就行了。