Java使用httpservletresponse下载照片
时间: 2023-08-13 15:06:37 浏览: 44
要使用HttpServletResponse下载照片,可以按照以下步骤操作:
1. 在Servlet中获取照片的输入流,例如:
```
InputStream inputStream = new FileInputStream(new File("path/to/photo.jpg"));
```
2. 设置response的ContentType,以指定下载文件的类型,例如:
```
response.setContentType("image/jpeg");
```
3. 设置response的Header,以指定下载文件的名称,例如:
```
response.setHeader("Content-Disposition", "attachment; filename=photo.jpg");
```
4. 获取response的OutputStream,将照片的内容输出到OutputStream中,例如:
```
OutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
```
5. 关闭输入流和输出流,例如:
```
inputStream.close();
outputStream.close();
```
完整代码如下:
```
@WebServlet("/download/photo")
public class PhotoDownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取照片的输入流
InputStream inputStream = new FileInputStream(new File("path/to/photo.jpg"));
// 设置response的ContentType
response.setContentType("image/jpeg");
// 设置response的Header
response.setHeader("Content-Disposition", "attachment; filename=photo.jpg");
// 获取response的OutputStream
OutputStream outputStream = response.getOutputStream();
// 将照片的内容输出到OutputStream中
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
// 关闭输入流和输出流
inputStream.close();
outputStream.close();
}
}
```