1. 程式人生 > >javaWeb中在servlet中response下載圖片

javaWeb中在servlet中response下載圖片

package org.servlet.demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 測試在servlet中,傳送請求 下載圖片
 *
 * @author k.sea
 *
 */
public class DownLoadImageServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // 獲取當前目錄的圖片路徑
        // String path=this.getServletContext().getRealPath("/image/tuxing.png");
        String path=this.getServletContext().getRealPath("/image/水星.png");
        // 獲取檔名
        String fileName=path.substring(path.lastIndexOf("\\")+1);
        System.out.println(fileName);
        //制定瀏覽器頭
        //在下載的時候這裡是英文是沒有問題的
        //resp.setHeader("content-disposition", "attachment;fileName="+fileName);
        //如果圖片名稱是中文需要設定轉碼
        resp.setHeader("content-disposition", "attachment;fileName="+URLEncoder.encode(fileName, "UTF-8"));
        InputStream reader = null;
        OutputStream out = null;
        byte[] bytes = new byte[1024];
        int len = 0;
        try {
            // 讀取檔案
            reader = new FileInputStream(path);
            // 寫入瀏覽器的輸出流
            out = resp.getOutputStream();

            while ((len = reader.read(bytes)) > 0) {
                out.write(bytes, 0, len);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (reader != null) {
                reader.close();
            }
            if (out != null)
                out.close();
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(req, resp);
    }

}

相關推薦

javaWebservletresponse下載圖片

package org.servlet.demo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; im

java如何設定response下載檔案

轉自 http://yibuyisheng.github.io/blogs/site/blogs/filedownload.html在 WEB 開發中,我們會期望使用者在點選某個連結的時候,下載一個檔案(不管這個檔案能不能被瀏覽器解析,都要下載)。以前接觸過一種方式,就是在響

Servlet使用response生成圖片驗證碼

    在JavaWeb中伺服器對客戶端瀏覽器請求做出的響應會被封裝成一個HttpServletResponse物件,根據HttpServletResponse物件中的getWriter方法可以獲得一個PrintWriter物件,該物件可以實現TXT、word、Excel、P

JavaWeb(一)Servlet的request與response

request 服務器 信息 let res 通過 req album 方法 一、HttpServletRequest概述 1.1、HttpServletRequest簡介 HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協議訪問服務器時,HT

jspresponse實現圖片下載

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String path = this.getSe

ServletResponse物件應用1(輸出簡單文字、實現檔案下載

通過response物件可以實現很多功能,下面的程式碼都是在myeclipse上實現過的,整理下路,以備後用。 response物件應用1 1向客戶端傳送簡單訊息 A利用已經宣告的物件,呼叫其getOutputStream()方法,向客戶端輸出內容

JavaWeb(一)Servlet的ServletConfig與ServletContext

創建 內容 1-1 是我 web-inf 找到 div tomcat getattr 前言   前面我介紹了一下什麽是servlet,它的生命周期,執行過程和它的原理。這裏我們做一個簡單的回顧!   什麽是Servlet?   servlet 是運行在 Web

JavaWeb(一)Servlet亂碼解決與轉發和重定向的區別

這也 charset 都是 war 不一定 調用 技術 請求方式 註冊 前言   前面其實已經把Servlet中所有的內容都介紹完了,這篇講補充一點亂碼和重定向與轉發之間的區別! 一、request請求參數出現亂碼問題 1.1、get請求   1)亂碼示例   g

Java Web(二) Servletresponse、request亂碼問題解決

nco post ima 處理 height http api img tle       三月不減肥,五月徒傷悲,這就是我現在的狀態,哈哈~ 健身、博客堅持。                               --WH 一、request請求參數出現的亂碼問題 

web開發(二) Servletresponse、request亂碼問題解決

相對 求和 AD 過程 中文亂碼 net new 規則 英文 在網上看見一篇不錯的文章,寫的詳細。 以下內容引用那篇博文。轉載於《http://www.cnblogs.com/whgk/p/6412475.html》,在此僅供學習參考之用。 一、request請求參數出

在fragment實現Android上傳圖片至本地JavaWeb服務器

prop prefix adt ilo err 1.10 response try 轉換成 服務器端: 需要一個接受文件的servlet,以及導入兩個包:commons-fileupload-1.3.1.jar 和 commons-io-2.4.jar import ja

[Xcode10 實際操作]八、網路與多執行緒-(15)使用網址會話物件URLSession下載圖片並存儲在沙箱目錄

本文將演示如何通過網址會話物件URLSession下載圖片並存儲在沙箱目錄中。 網址會話物件URLSession具有在後臺上傳和下載、暫停和恢復網路操作、豐富的代理模式等優點。 在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】 1 import UIKit

如何在伺服器端下載的網頁顯示客戶端的圖片

一般情況下,網頁只能顯示伺服器上的圖片。 (網頁中的圖片都是從伺服器端請求來的圖片)。 如何實現頁面中顯示客戶端的圖片呢?(比如說在桌面上拖拽一個圖面到網頁中的容器中) HTML5中提供的用於檔案輸入輸出(I/O)的物件: File:代表一個檔案/目錄檔案物件 FileList:代表一個檔案

JAVA建立HTTP通訊,從伺服器上獲取HTML程式碼,通過HTTP請求來下載圖片或其他二進位制檔案的程式,下載結果要按下載到的檔案型別進行存檔

通過HTTP請求來下載圖片或其他二進位制檔案的程式,下載結果要按下載到的檔案型別進行存檔 將程式碼從伺服器的中獲取下來的程式碼,在我之前已經講過了這裡寫連結內容 這裡我們就直接將原始碼稍加改動,加入一個檔案並請將builder 寫入即可。 import

Servletrequest、response、ServletContext 及其常用方法

request物件的類是HttpServletRequest request的常見方法: request.getRequestURL(): 瀏覽器發出請求時的完整URL,包括協議 主機名 埠(如果有)request.getRequestURI(): 瀏覽器發出請求的資源名部分,去掉了協議和主機名reque

從網路下載圖片並進行顯示

通過get請求方式獲取網路圖片----主要是方便以後查閱以及做一個筆記 任務要求: 1.新建一個佈局檔案,在佈局檔案中新增Button、ImageView兩個控制元件 2.新建一個GetPictThread實現Runnable介面   (1)定義一個handler用於

關於JavawebServlet顯示亂碼的解決方法

問題描述: 在servlet中使用中文時,會出現網頁中顯示亂碼的情況 解決方法: 第一步: 首先找到Tomcat的檔案目錄,並開啟conf中的servlet.xml檔案,可以直接用記事本開啟,d=====( ̄▽ ̄*)b。 找到 此段內容共有兩段內容一致的段落,應

servlet的檔案下載

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /** * 使

關於servlet檔案的上傳和下載

關於servlet中檔案的上傳和下載 jar包 jsp頁面程式碼: <script type="text/javascript"> function addFile(){ //得到div容器 var div1 = document.getElementById

Servletresponse響應異常

異常:java.lang.IllegalStateException: Committed 異常原因:Servlet響應後不能夠再提交。即不能再向response中再新增值。 如再次重定向:resp.sendRedirect("URL")。 錯誤程式碼示例: PrintWr