67,513
社区成员
发帖
与我相关
我的任务
分享
BufferedInputStream dis = null;
BufferedOutputStream fos = null;
String urlString = request.getParameter("urlString");
String fileName = urlString.substring(urlString.lastIndexOf('/') + 1);
try {
URL url = new URL(urlString);
response.setContentType("application/x-msdownload;");
response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1"));
response.setHeader("Content-Length", String.valueOf(url.openConnection().getContentLength()));
dis = new BufferedInputStream(url.openStream());
fos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = dis.read(buff, 0, buff.length))) {
fos.write(buff, 0, bytesRead);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (dis != null)
dis.close();
if (fos != null)
fos.close();
}
// 输出的文件流
OutputStream os = new FileOutputStream(filename);
中的filename 怎么填写呢 写也不对,不写又报错,有具体的下载代码吗,可以在浏览器下载
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="
+ new String(fileName.getBytes("gb2312"), "iso8859-1"));
String filePath =//这里是可以取到真实的物理地址的
类似D:\tomcat\tmp123.doc 这样的路径
InputStream in = new FileInputStream(filePath);
OutputStream os = response.getOutputStream();
byte[] b = new byte[1024 * 1024];
int length;
while ((length = in.read(b)) > 0) {
os.write(b, 0, length);
}
in.close();
}