黑马程序员技术交流社区
标题:
下面这段代码为什么不能实现文件下载,而是在页面上直接显示?
[打印本页]
作者:
一梦千寻
时间:
2013-12-18 21:58
标题:
下面这段代码为什么不能实现文件下载,而是在页面上直接显示?
package cn.itcast.ResPonse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PictureDownload extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path=this.getServletContext().getRealPath("/download/9.jpg");
String filename=path.substring(path.lastIndexOf("\\")+1);
// System.out.println(filename);
response.setHeader("content-disposition", "attachement;filename="+filename);
InputStream in=null;
OutputStream out=null;
byte [] by=new byte[1024];
int count=0;
in=new FileInputStream(path);
out=response.getOutputStream();
while((count=in.read(by))>0){
out.write(by, 0, count);
}
in.close();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
作者:
任亚俊
时间:
2013-12-20 12:14
本帖最后由 任亚俊 于 2013-12-20 12:16 编辑
输出流不能用response对象获取,而应该新建一个文件输出流,输出到指定的路径,可以让用户指定,也可以自己固定一个地址。把 out=response.getOutputStream();改成 FileOutputStream out=new FileOutputStream("D:/down.jpg");即可。文件会下载到D盘根目录。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2