java下载图片_使用javaweb实现图片的下载

本文详细介绍了如何使用Java Web实现图片下载功能。通过创建`DownloadServlet`,获取请求参数,利用`FileInputStream`读取服务器上的图片文件,设置响应头的`content-type`和`content-disposition`,最后将图片数据写入到响应输出流中完成下载过程。
摘要由CSDN通过智能技术生成

讲一下使用javaweb实现图片的下载

我们要下载图片首先是因为服务器里面有这张图片,我们是去请求服务器下载图片的

package cn.itcast.web.download;

import java.io.FileInputStream;

import java.io.IOException;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Servlet implementation class DownloadServlet

*/

@WebServlet("/DownloadServlet")

public class DownloadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public DownloadServlet() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

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

//1.获取请求参数,文件名称

String filename = request.getParameter("filename");

//2.使用字节输入流加载文件进内存

//2.1找到文件服务器路径

ServletContext servletContext = this.getServletContext();

String realPath = servletContext.getRealPath("/img/"+filename);

//2.2用字节流关联

FileInputStream fis=new FileInputStream(realPath);//将图片读进内存

//3.设置response的响应头

//3.1设置响应头类型:content-type

String mimeType = servletContext.getMimeType(filename);//获取文件的mime类型

response.setHeader("content-type", mimeType);

//3.2设置响应头的打开方式

response.setHeader("content-disposition", "attachment;filename="+filename);

//4.将输入流的数据写出到输出流中

ServletOutputStream sos = response.getOutputStream();

byte[] buff = new byte[1024 * 8];

int len = 0;

while((len = fis.read(buff)) != -1){

sos.write(buff,0,len);

}

fis.close();

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

Insert title here

图片


图片

100da0c10560f3f74662502cc2c4d52a.pnghttps://www.zhihu.com/video/1242559824296325120

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值