已经把图片上传到了服务器上,现在需要从服务器下载图片的功能,并且已经能进行下载 但下载的文件名怎么会是 我明明设置了类型和名称啊 怎么还是显示的是html 而不是一个图片的类型? 求解决啊 代码如下:
其中 imagePo是一个图片的实体类
请问我应该怎么改才能点击下载的时候显示的那个提示框的时候 文件类型不是Html 而是图片的那个格式 并且名称显示对了ImagePo po = imageService.getImagePo(id);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment; filename="+po.getName());
String path2 = request.getSession().getServletContext().getRealPath("");
System.out.println(path2+"\\"+po.getUrl());
File file = new File(path2+"\\"+po.getUrl());
response.setContentLength((int)file.length());
FileInputStream fis=new FileInputStream(file);
BufferedInputStream buff=new BufferedInputStream(fis);
byte [] b=new byte[1024];//缓存
long k=0;//该值用于计算当前实际下载了多少字节
//从response对象中得到输出流,准备下载
OutputStream myout=response.getOutputStream();
//开始循环下载
while(k<file.length()){
int j=buff.read(b,0,1024);
k+=j;
//将b中的数据写到客户端的内存
myout.write(b,0,j);
}
//将写入到客户端的内存的数据,刷新到磁盘
myout.flush();
myout.close();file服务器response
其中 imagePo是一个图片的实体类
请问我应该怎么改才能点击下载的时候显示的那个提示框的时候 文件类型不是Html 而是图片的那个格式 并且名称显示对了ImagePo po = imageService.getImagePo(id);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment; filename="+po.getName());
String path2 = request.getSession().getServletContext().getRealPath("");
System.out.println(path2+"\\"+po.getUrl());
File file = new File(path2+"\\"+po.getUrl());
response.setContentLength((int)file.length());
FileInputStream fis=new FileInputStream(file);
BufferedInputStream buff=new BufferedInputStream(fis);
byte [] b=new byte[1024];//缓存
long k=0;//该值用于计算当前实际下载了多少字节
//从response对象中得到输出流,准备下载
OutputStream myout=response.getOutputStream();
//开始循环下载
while(k<file.length()){
int j=buff.read(b,0,1024);
k+=j;
//将b中的数据写到客户端的内存
myout.write(b,0,j);
}
//将写入到客户端的内存的数据,刷新到磁盘
myout.flush();
myout.close();file服务器response
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货