本文目錄一覽:
java文件下載為什麼不能下載pdf
java文件下載不能下載pdf的原因:
1、電腦沒裝閱讀器。
2、文件加密了。
3、對應的下載工具不支持。
4、Java類文件是Java程序的二進位表示形式。每一個類文件代表一個類或者介面。不可能在一個類文件中放入多個類或者介面。這樣就使得無論類文件是在哪一種平台上生成,都可以在任何主機上執行。
java文件下載401
報錯。java文件下載401,是產生報錯了。Java文件是由SunMicrosystems公司,於1995年5月推出的Java程序設計語言和Java平台的總稱。
java 如何下載文件?
我用struts2給你實現:
1.首先struts2.xml 裡面
action name=”download” class=”com.zfj.action.DownloadAction”
!– 注意這裡不再是返回一個字元串找到一個頁面了
從伺服器返回到本地客戶端是一個流 我們需要配置流信息
type:表示接受方式或者跳轉方法是
默認是 dispatcher 請求轉發,所以之前我們一般不書寫這個參數但是這裡需要更改為stream重定向
—
result type=”stream”
!–
因為之前我們設置的execute方法返回一個String,但是我們現在需要返回一個流。這裡我們要指定一個新的方法為我們處理業務邏
輯並且返迴流所以默認execute 方法對我們沒有作用了,在這裡我們指定一個新的方法為我們處理業務邏輯並且最後返迴流
這裡的inputName是固定寫法 後面的名字dname要跟 action裡面的getDname對應
—
param name=”inputName”dname/param
!– 當流返回過來時,我們應當設置頭信息
給瀏覽器,這裡設置的都是流信息
name裡面的是固定寫法
attachment:表示使用附件下載
online:直接打開
分號後的filename是固定寫法,後面通過一個ognl表達式
引用下載的文件名
—
param name=”contentDisposition”attachment;filename=${filename}/param
/result
/action
這裡不再是返回一個字元串找到一個頁面了。從伺服器返回到本地客戶端是一個流,我們需要配置流信息。
type:表示接受方式或者跳轉方式是(默認是dispathcher請求轉發,所以之前我們一般不書寫這個,但是這裡下載需要更改stream)
2.對應的DownloadAction
@Override
public String execute() throws Exception {
return this.SUCCESS;
}
//這裡的getEtoak要跟struts.xml里的inputName的值對應
public InputStream getEtoak() throws Exception {
return new FileInputStream(
ServletActionContext.getServletContext()
.getRealPath(“/image”)
+ “/”
+ this.getFilename());
}
Java 下載文件的方法怎麼寫
參考下面
public HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下載的文件的路徑。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 取得文件的後綴名。
String ext = filename.substring(filename.lastIndexOf(“.”) + 1).toUpperCase();
// 以流的形式下載文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 設置response的Header
response.addHeader(“Content-Disposition”, “attachment;filename=” + new String(filename.getBytes()));
response.addHeader(“Content-Length”, “” + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType(“application/octet-stream”);
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}
// 下載本地文件
public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
String fileName = “Operator.doc”.toString(); // 文件的默認保存名
// 讀到流中
InputStream inStream = new FileInputStream(“c:/Operator.doc”);// 文件的存放路徑
// 設置輸出的格式
response.reset();
response.setContentType(“bin”);
response.addHeader(“Content-Disposition”, “attachment; filename=\”” + fileName + “\””);
// 循環取出流中的數據
byte[] b = new byte[100];
int len;
try {
while ((len = inStream.read(b)) 0)
response.getOutputStream().write(b, 0, len);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 下載網路文件
public void downloadNet(HttpServletResponse response) throws MalformedURLException {
int bytesum = 0;
int byteread = 0;
URL url = new URL(“windine.blogdriver.com/logo.gif”);
try {
URLConnection conn = url.openConnection();
InputStream inStream = conn.getInputStream();
FileOutputStream fs = new FileOutputStream(“c:/abc.gif”);
byte[] buffer = new byte[1204];
int length;
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread;
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//支持在線打開文件的一種方式
public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {
File f = new File(filePath);
if (!f.exists()) {
response.sendError(404, “File not found!”);
return;
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
byte[] buf = new byte[1024];
int len = 0;
response.reset(); // 非常重要
if (isOnLine) { // 在線打開方式
URL u = new URL(“” + filePath);
response.setContentType(u.openConnection().getContentType());
response.setHeader(“Content-Disposition”, “inline; filename=” + f.getName());
// 文件名應該編碼成UTF-8
} else { // 純下載方式
response.setContentType(“application/x-msdownload”);
response.setHeader(“Content-Disposition”, “attachment; filename=” + f.getName());
}
OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) 0)
out.write(buf, 0, len);
br.close();
out.close();
}
Java如何利用url下載MP3保存到本地?
Java如何利用url下載MP3保存的方法:
1 /** ;
2 * TODO 下載文件到本地 ;
3 * @author nadim ;
4 * @date Sep 11, 2015 11:45:31 AM ;
5 * @param fileUrl 遠程地址 ;
6 * @param fileLocal 本地路徑 ;
7 * @throws Exception ;
8 */ ;
9 public void downloadFile(String fileUrl,String fileLocal) throws Exception {;
10 URL url = new URL(fileUrl);
11 HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();
12 urlCon.setConnectTimeout(6000);
13 urlCon.setReadTimeout(6000);
14 int code = urlCon.getResponseCode();
15 if (code != HttpURLConnection.HTTP_OK) {
16 throw new Exception(“文件讀取失敗”);
17 }
18 //讀文件流;
19 DataInputStream in = new DataInputStream(urlCon.getInputStream());
20 DataOutputStream out = new DataOutputStream(new FileOutputStream(fileLocal));
21 byte[] buffer = new byte[2048];
22 int count = 0;
23 while ((count = in.read(buffer)) 0) {;
24 out.write(buffer, 0, count);
25 }
26 out.close();
27 in.close();
28 }。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行複雜的編程 。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/205809.html