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
B. java實現下載文件,如果文件名為中文,下載後內容為空,求解釋!
你的path變數的值是怎麼來的。如果只是中文名有問題,可以嘗試用URLDecoder.decode來對文件名進行URL編碼轉換。你debug跟蹤下在URL url=new URL(path);這句時,你的path是什麼值,他是否可以訪問。
C. java文件下載不顯示中文文件名,
//下載
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;
}
}
D. java項目中,下載時怎樣根據自定義的文件名去下載對象的文件(自定義的文件名和文件本身的名字不一樣)
資料庫里存放文件路徑的表中再添加一個欄位表示資源名稱不就行了。
下載時用戶提交帶有資源名稱參數的請求,收到請求後根據請求的資源名稱參數去資料庫查詢文件的實際位置和名稱,然後用文件的實際路徑和名稱 讀取文件 得到inputstream流,把文件的inputstream寫入給用戶響應的response的outputstream就行了。
E. 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;
%>
F. java怎樣讀取http文件伺服器上的文件列表並下載
要求文件名不能寫死,那麼只能到伺服器上去遍歷目錄,如果伺服器開了ftp許可權的話到可以用apache的commons-net包,裡面有ftp功能可以上傳下載文件,也可以遍歷文件
G. java 從伺服器下載文件並保存到本地
進行從文件伺服器下載文件到本地的具體步驟如下:
首先,客戶端發起一個URL請求,獲取連接對象。
接著,伺服器解析URL,將指定資源返回一個輸入流給客戶端。
然後,建立存儲目錄並確定保存文件名。
之後,開始輸出寫入數據。
最後,關閉輸入流與輸出流。
為簡化此過程,可以創建下載工具類,如DownLoadUtil.java,便於調用。在action類中調用此工具類中的方法。以Struts2為例,先建立工具類,便於後續調用。在action類方法里調用工具類中的方法。在Struts.xml中配置action,指定方法為docDown,無需配置其他result和param。部分代碼是根據他人修改而來,若有錯誤之處,歡迎指正。