主题:关于文件下载的问题
elongzhiyou
[专家分:0] 发布于 2005-06-17 13:12:00
我做了一个文件下载的页面,就是每个网站都有的下载页面差不多。我下载的是文本文件。不知道为什么,下载下来的文件都多了2行,在ultraedit中是2空行,在editplus下看是2个方框乱码?到底是怎么回事呢?很郁闷。希望知道的能给解答一下。
回复列表 (共1个回复)
沙发
elongzhiyou [专家分:0] 发布于 2005-06-17 13:15:00
代码为:
<%
//得到要下载的文件名
// String filename = request.getParameter("filename");
String filename = request.getParameter("b");
//处理在下载保存对话框中,文件名显示不正确的问题,见下面的详细说明
String downloadDisplayName = java.net.URLEncoder.encode(filename, "UTF-8");
//设置response的属性,以使浏览器知道这次是下载文件,而不是网页
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=\"" + downloadDisplayName + "\";");
//response.setHeader("Content-Disposition","attachment; ");
//构件文件的绝对路径
filename = "/down/rjhdown/" + request.getParameter("a") + "/" + filename;
filename = application.getRealPath( filename );
//response.sendRedirect(filename);
int iRead;
FileInputStream stream = null;
try {
//根据要下载的文件构件一个文件对象。
java.io.File f = new java.io.File(filename);
stream = new FileInputStream(f);
//构建一个流对象,它以ISO-8859-1的编码格式读取文件
InputStreamReader inn = new InputStreamReader(stream,"ISO-8859-1");
out.clearBuffer();
//使用循环,一边读数据,一边写数据
while ((iRead = inn.read()) != -1) {
out.write(iRead);
}
inn.close();
} finally {
if (stream != null) { stream.close(); }
}
%>
我来回复