码迷,mamicode.com
首页 > 编程语言 > 详细

javaWeb中在servlet中response下载图片

时间:2015-04-03 13:34:13      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

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);
    }

}

javaWeb中在servlet中response下载图片

标签:

原文地址:http://blog.csdn.net/mexican_jacky/article/details/44853073

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!