RT:昨天写了个文件下载的代码,在我电脑上测试的时候是好后的,可是今天客户打电话说,他不能下载,我纠结了半天不知道哪里出错了,后来基诺多台电脑测试发现一个问题,那就是这个下载只能用IE浏览器自带的下载器下载,不能用迅雷,或者是360,还是其他的下载器下载。在线求指导,这个怎么解决!
------最佳解决方案--------------------
说实话,看不出来什么问题,你试试把response.setContentType("application/x-download"); 改成response.setContentType("application/force-download");
------其他解决方案--------------------
没代码,没错误,解决什么
------其他解决方案--------------------
同问。
------其他解决方案--------------------
try
{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String fname=request.getParameter("filename");
System.out.println(name+"文件名");
System.out.println(fname+"文件夹");
String webpath=request.getSession().getServletContext().getRealPath("")+"/"+"manage_file"+"/"+"public_space/";
String savePath=webpath+fname;
response.setContentType("application/x-download");
String filenamedownload = savePath + "/" + name;
String filenamedisplay = name;
filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+ filenamedisplay);
try {
OutputStream os = response.getOutputStream();
FileInputStream fis = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while ((i = fis.read(b)) > 0) {
os.write(b, 0, i);
}
fis.close();
os.flush();
os.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
catch(Exception e)
{
e.printStackTrace();
}
------其他解决方案--------------------
错误就是用其他的下载器下载 System.out.println(name+"文件名"); System.out.println(fname+"文件夹"); 这两句输出为null 。空指针异常
------其他解决方案--------------------