您的位置:首页 > 其它

用servlet实现文件和图片的下载

2016-07-14 18:17 399 查看
用servlet实现文件和图片的下载

package com.cdsxt.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownloadServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Content-Disposition attachment; filename="40Ò³ÕûÀíÓ¢ÓïËļ¶µ¥´Ê´óÈ«.doc"

// response.addHeader("content-type", "dfag/fdsaffdsa;charset=utf-8");
//下载 两步 第一步 设置头信息 第二步 以流方式写出去
ServletContext context=this.getServletContext();
// InputStream in=context.getResourceAsStream("/file/英语四级.doc");
String path=context.getRealPath("/file/girl.jpg");
File file=new File(path);
String nameStr=file.getName();
String name=new String(nameStr.getBytes("utf-8"),"iso8859-1");
FileInputStream in=new FileInputStream(file);
response.addHeader("Content-Disposition", "attachment; filename="+name);

OutputStream out=response.getOutputStream();
byte[] b=new byte[8192];
int temp=0;
while((temp=in.read(b))!=-1){
out.write(b, 0, temp);
}
out.flush();
out.close();
in.close();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: