當前位置:首頁 » 網頁前端 » webjava下載文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

webjava下載文件

發布時間: 2022-10-02 05:35:49

Ⅰ 如何用java語言直接從web上下載數據,從而省去在網頁上手動點擊下載

URL url = new URL("http://219.219.114.10/infobin/select.dll");

URLConnection uc = url.openConnection();
InputStreamReader is = new InputStreamReader(uc.getInputStream());
int line;
StringBuffer sb = new StringBuffer("");
while((line=is.read())!=-1){
sb.append((char)line);
}
String str = sb.toString();
//解析其中的內容
//可以通過 找到有用的地址文件,然後利用如下
url = new URL(「有用的文件路徑」);
BufferedInputStream in = new BufferedInputStream(url.openStream());
哈哈,得到它了,一切就ok啦
下面的會了嗎,流操作,寫到本地

Ⅱ java WEB 下載 特殊 文件

比如你點頁面的一個超鏈接,超鏈接請求後台某個方法,方法中
byte[] buff=//你的文件位元組數組
response.reset();
//這里的application/vnd.ms-excel表示是excel文件流,其他文件格式的流有不同寫法
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.
addHeade("ContentDisposition", "attachment;filename=xxx.slx");
//直接下載二進制數據到本地文件
try {
response.getOutputStream().write(buff);
} catch (IOException e) {e.printStackTrace();
}
return null;
在頁面點連接的時候就會啟動下載

Ⅲ Javaweb中的文件下載實現

需要在響應頭部加上一些標示,告訴瀏覽器這個是文件下載。

如果你用了框架比如struts,需要加如下配置
<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">fileStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">2048</param>
</result>
如果沒有用框架,就手動在返回對象添加這些contentType

Ⅳ java web下載文件報錯

寫錯位置了,兄弟,看看邏輯,你先創建了file,但沒有填充內容,所以您的file.length()為0,您的setContentLength應該不是讀取file.length(),而是您的需要輸出的位元組流。

Ⅳ Java Web如何實現遠程下載

在項目根路徑中建一個文件夾比如Files專門存放文件,可以在webRoot中建此文件夾,然後你在前台寫一個<a>標簽,比如這樣
<a href=http://192.168.14.17:8080/DownLoad/Files/a.txt>下載</a>
這樣就可以了

Ⅵ 【Java Web】文件下載方式有哪些,以及利弊

直接下載的不太安全,用戶會看見你的路徑的 這個不太好

位元組流的安全 而且文件位置任意放 一般都是配置在屬性文件里的 願意放拿就放哪 ,但是也有點問題,上次我就遇到過一個 日文亂碼的 至今沒有解決

Ⅶ java web項目,文件保存在伺服器硬碟上,那要下載某個文件的思路是什麼,該怎麼實現呢

採用一個FTP的方式,直接下載上傳文件即可。

Ⅷ java web 怎麼從伺服器下載文件到客戶端的指定位置

我腳得的吧,這應該是瀏覽器考慮的問題吧,比如谷歌瀏覽器,就有這么一個配置:

Ⅸ JavaWeb如何將文件下載到本地.要求不要有提示下載框的,直接點擊後,就下載到某個本地盤下。

點擊後轉向執行的方法:先獲取點擊的文件路徑,然後通過讀取文件的IO流對象,放到緩沖流裡面,然後向網路傳輸文件流。

Ⅹ JavaWeb下載文件,怎麼獲取文件下載完畢的狀態

在Javaweb中,上傳下載是經常用到的功能,對於文件上傳,瀏覽器在上傳的過程中是以流的過程將文件傳給伺服器,一般都是使用commons-fileupload這個包實現上傳功能,因為commons-fileupload依賴於commons-io這個包,所以需要下載這兩個包commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar。

1、搭建環境

創建Web項目,將包導入到項目lib下

3、實現文件下載

(第一種文件下載)

注意:該代碼是直接訪問Servlet類的

?

04142package com.load;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;//直接使用Http://localhost:8080/Test1/download進行下載,但是這個有缺陷,如果下載文件名中有中文,就會變成亂碼現象!@WebServlet("/download")public class download extends HttpServlet {private static final long serialVersionUID = 1L;public download() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/plain;charset=utf-8");response.setCharacterEncoding("utf-8");response.setHeader("Location","中文.txt");response.setHeader("Content-Disposition", "attachment; filename=" + "賬號.txt");OutputStream outputStream = response.getOutputStream();InputStream inputStream = new FileInputStream("E:/loads"+"/賬號.txt");byte[] buffer = new byte[1024];int i = -1;while ((i = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, i);}outputStream.flush();outputStream.close();}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

(第二種下載方法)

新建jsp頁面選擇下載

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>下載</title></head><body><a href="../DoDownloadServlet?filename=呵呵.txt">點擊下載</a></body></html>

創建Servlet類進行下載(注意:該下載如果文件名是中文的話,一樣會出現亂碼現象)

package com.load;

import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspFactory;import javax.servlet.jsp.PageContext;import org.hsqldb.lib.StringUtil;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;@WebServlet("/DoDownloadServlet")public class DoDownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public DoDownloadServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//得到下載文件的名稱//String filename = request.getParameter("filename");//String filename = new String(FileName.getBytes("iso8859-1"),"UTF-8");//新建SmartUpload對象SmartUpload su = new SmartUpload();PageContext pagecontext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);//上傳初始化su.initialize(pagecontext);//設置禁止打開該文件su.setContentDisposition(null);//下載文件try {su.downloadFile("/listener/"+filename);} catch (SmartUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

(第三種下載的方法)

同上的jsp頁面代碼,這里就不再重復了。

新建Serlvet類,實現下載功能(注意:這里文件名就算是中文名,也不會出現亂碼問題了!)

package com.load;

import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspFactory;import javax.servlet.jsp.PageContext;import org.hsqldb.lib.StringUtil;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;@WebServlet("/DoDownloadServlet")public class DoDownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public DoDownloadServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//獲得文件名稱String path1 = request.getParameter("filename");//獲得路徑名稱String path = request.getSession().getServletContext().getRealPath("/listener/"+path1);// path是根據日誌路徑和文件名拼接出來的File file = new File(path);String filename = file.getName();try {//判斷是否是IE11Boolean flag= request.getHeader("User-Agent").indexOf("like Gecko")>0;//IE11 User-Agent字元串:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko//IE6~IE10版本的User-Agent字元串:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.0; Trident/6.0)if (request.getHeader("User-Agent").toLowerCase().indexOf("msie") >0||flag){filename = URLEncoder.encode(filename, "UTF-8");//IE瀏覽器}else {//先去掉文件名稱中的空格,然後轉換編碼格式為utf-8,保證不出現亂碼,//這個文件名稱用於瀏覽器的下載框中自動顯示的文件名filename = new String(filename.replaceAll(" ", "").getBytes("UTF-8"), "ISO8859-1");//firefox瀏覽器//firefox瀏覽器User-Agent字元串://Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0} InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer;buffer = new byte[fis.available()];fis.read(buffer);fis.close();response.reset();response.addHeader("Content-Disposition", "attachment;filename=" +filename);response.addHeader("Content-Length", "" + file.length());OutputStream os = response.getOutputStream();response.setContentType("application/octet-stream");os.write(buffer);// 輸出文件os.flush();os.close();} catch (IOException e) {e.printStackTrace();}System.out.println(filename);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}