java下載文件,JAVA下載文件接口

本文目錄一覽:

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-hant/n/205809.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-07 17:47
下一篇 2024-12-07 17:47

相關推薦

發表回復

登錄後才能評論