日期:2014-05-18  浏览次数:20676 次

从unix用文件输出流形式下载文件到windows的问题
各位大虾,请教个问题。
做了一个下载页面,不想让下载用户直接能看到文件的静态url,所以用一个jsp页面处理,用byte形式把文件读出来,然后写入响应流。此方法在windows平台上可以,但是服务器放在linux/suse上面就不好用了,下载的exe不能运行。我估计是编码问题,比如回车符什么的,但是不知如何解决。
请帮忙看看,谢谢!源代码如下:
  response.setContentType(fileminitype);
response.setHeader("Location", filename);
//response.setHeader("Cache-Control", "max-age=" + cacheTime);
response.setHeader("Content-Disposition","attachment; filename=" + filename);
response.setContentLength((int) filelength);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(filepath);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();

------解决方案--------------------
看似没有问题
------解决方案--------------------
楼主看看有没有报异常啊.有一些在jsp中下载文件的操作会出错的