1. 程式人生 > >JAVA 超簡單的實現伺服器檔案下載至本地

JAVA 超簡單的實現伺服器檔案下載至本地

直接上程式碼。

我這個使用的Servlet做的測試,以後可以根據實際情況改變自己需要的環境。

方法名字是download.

public void download( HttpServletRequest request, HttpServletResponse response) {

    	//前端頁面將自己需要的檔名字拿過來。這個名字直接拼接到檔案所在伺服器的相對路徑。這裡為便於測試。我直接把名字寫死,以後使用的時候

        //根據實際業務進行修改。

        String fileName = request.getParameter("file");

    	System.out.println(fileName);

    	

        try {

            //mac系統,所以路徑是這樣子的。win系統就是D盤什麼什麼的

            String path = "/Users/xuming/Downloads/"+"1234.docx";

            //這裡是下載以後的檔案叫做什麼名字。我這裡是以時間來定義名字的。

            downCfg(System.currentTimeMillis()+".docx", request, response);

            OutputStream out;

            FileInputStream inputStream = new FileInputStream(path);

            out = response.getOutputStream();

            byte[] buffer = new byte[1024];

            int len;

            while ((len = inputStream.read(buffer)) != -1) {

                out.write(buffer, 0, len);

            }

            inputStream.close();

            out.close();

            out.flush();

            

        } catch (IOException e) {

            e.printStackTrace();

            

        }

    }



    private void downCfg(String fileName, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {

        // 判斷瀏覽器,進行不同的加密,這樣下載的時候儲存的檔名就不會亂碼

        String userAgent = request.getHeader("User-Agent");

        // 針對IE或者以IE為核心的瀏覽器:

        if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {

            fileName = URLEncoder.encode(fileName, "UTF-8");

        } else {

            // 非IE瀏覽器的處理:

            fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");

        }

        response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName));

        response.setContentType("application/octet-stream;charset=utf-8");

        response.setCharacterEncoding("UTF-8");



    }

相關推薦

JAVA 簡單實現伺服器檔案下載本地

直接上程式碼。我這個使用的Servlet做的測試,以後可以根據實際情況改變自己需要的環境。方法名字是download.public void download( HttpServletRequest request, HttpServletResponse response)

Java servlet 簡單實現http檔案下載斷點續傳功能

斷點續傳,聽上去似乎是個比較高階的話題,本文只講述一下http版的斷點續傳,其他協議的大家可以自行研究。 http協議中,服務端實現斷點續傳首先需要讀取客戶端傳送的Range頭資訊,比如“Range: bytes=12583394-”這個就是指原來正在下載的檔案需要從第12

JAVA通過訪問頁面中的URL實現Http檔案下載本地

如何通過訪問某一個網頁上的一個下載連結下載檔案到本地呢?我學習了一下,利用httpget1,httpResponse1來判斷網路是否連線訪問成功,又通過httpget2,httpResponse2來訪問下載連結實現檔案下載。 注意:在使用httpget2之前需使用語句“ h

java伺服器檔案下載本地

前言 我實現了一個生成excel的功能,讓使用者在訪問伺服器點選匯出按鈕時下載到使用者本地。這就不能只是簡單的java io寫出了,總不能寫出到伺服器本地了吧,使用者本地一臉懵逼。怎麼返回檔案給訪問網頁的使用者?通過response返回檔案資料。 正文 邏輯是:

[Leetcode] 28. 實現strStr() java (簡單高效方法)

 實現 strStr() 函式。 給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回  -1。 示例 1: 輸入: hayst

java後臺實現excel檔案下載功能

    java中對於excel檔案的操作,有讀取,寫入,上傳等功能,在對excel檔案進行操作時,為了讓使用者更加直觀的製作excel資料,必然會有下載模板excel檔案功能, 這裡以學生基本資訊模板excel檔案為例,實現對指定路徑下的excel檔案進行下載的後臺程式碼。

簡單實現從瀏覽器下載檔案

最容易出錯到點 JDBC連線資料庫卻忘記導包:mysql-connector-java-5.1.7-bin.jar 使用Servlet卻忘記導tomcat的包:servlet-api.jar,這個包在tomcat/lib中找到 自己手寫Servlet卻忘記到web.x

java簡單實現Log列印和生成日誌檔案

導包 1.commons-logging.jar包 下載 2.log4j.jar包 下載 配置log4j 1.在src根目錄下建立一個log4j.properties檔案。 檔案全部內容如下:   log4j.rootLogger=CONSOLE,stdout

Java實現HTTP檔案下載

java 中使用代理伺服器的問題求教 :http://www.linuxsir.org/bbs/archive/index.php/t-188774.html 序言  許多使用者可能會遇到這樣的情況:在網站上發現一個很好的資源,但是這個資源是分成了很多個檔案存放的,如果想把它儲存到本地,只有靠使用者點選另

JAVA 實現 HTTP檔案下載

需求: 在工程中,放置WORD模板檔案供使用者下載 功能:頁面提供下載連結,使用者點選連結後,實現檔案下載。 理解:剛開始以為直接用超連結指向檔案即可,或用js實現,後來發現都不行。 實現:最後在網上搜了一個實現HTTP檔案下載的java類,只要呼叫如下程式碼即可。 下面程

java 實現 http 檔案下載

package com.easemob.server.example.httpclient.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOExcepti

java 中 FtpClient 實現 FTP 檔案上傳、下載

package ftp; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWrit

java實現pdf檔案下載

實現點選超連結下載pdf檔案,該pdf檔案的內容又跟JSP頁面的資料有關。實質就是一個列印吧。 若對此列印有一個pdf的template,要先載入template,即把template裡面的東西讀出來。 PdfReade

java】HttpClient實現HTTP檔案通用下載工具類

package com.imopan.cps.apart.api.util; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import org.apa

java 用瀏覽器 到伺服器下載指定檔案(含前後端)

其實這篇文章是上篇 pdf檔案生成 的後續,當時開發的時候就直接下載到桌面了,然後上環境發 現下載到了伺服器上,因此就趕緊搞了這個,網上的程式碼千篇一律,他們都是有後臺,但 是缺少前臺頁面的方法,我也是看了不少才補全,親測可用。 前端頁面 <td&g

什麼是socket?什麼是socket的長、短連線?java如何簡單實現socket客戶端和伺服器

*socket就是套接字,是一種通訊方式!採用這種方式可以實現客戶端和伺服器之間的通訊! 百度百科的解釋:        Socket的英文原義是“孔”或“插座”。作為BSD UNIX的程序通訊機制,取後一種意思。通常也稱作"套接字",用於描述IP地址和埠,是一個通訊鏈的控

Java 使用 FTP 實現檔案上傳下載

Java 上傳下載 1G 以上的檔案可以通過 http 協議或 ftp 實現,但是 http 協議對檔案上傳大小有限制,而且還不穩定,因此這裡使用 ftp 上傳。 ftp 上傳方式有兩種: 一、ASCII 傳輸方式:假定使用者正在拷貝的檔案包含

java簡單實現數據庫連接池

zed cal lean jdbc stat eof LEDE import thread 一直在想java事務是怎麽實現的,在原聲jdbc的時候級別下,我們可以通過關掉autocommit 然後再手動commit。但是項目開發中基本上是看不見conection的。所以自己

Kotlin簡單實現StepView

TimeLineStepView 支援時間軸和StepView,三種佈局,支援水平佈局,垂直佈局和自定義佈局,截圖如下 新增依賴 implementation 'com.joketng:TimeLineStepView:1.0.1' 複製程式碼 使用方法 在佈局檔案中新

【nginx】記錄nginx+php-fpm實現檔案下載排坑的過程

先上一段程式碼,支援大檔案下載和斷點續傳,程式碼來源網際網路。 set_time_limit(0); // 省略取檔案路徑的過程,這裡直接是檔案完整路徑 $filePath = get_save_path() . $File['save_name']; $filePath = realpath($fil