迅雷下载文件显示名称问题
package com.servlet;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.common.BeanHelper;
@SuppressWarnings("serial")
public class DownloadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) {
String fullPath;
String localPath = request.getParameter("path");
String basePath = BeanHelper.getConfService().getScatter().getBasePath(); //private.xml中读取文件存放路径
fullPath = basePath + localPath; //图片的全路径
String fileName = localPath.substring(localPath.lastIndexOf("/") + 1);
FileInputStream fis = null;
OutputStream toClient = null;
try {
fis = new FileInputStream(fullPath);
int i = fis.available(); // 得到文件大小
byte data[] = new byte[i];
fis.read(data); // 读数据
fis.close();
response.setContentType("multipart/form-data"); // 设置返回的文件类型
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName); // 设置文件头
response.setContentLength(i);
toClient = response.getOutputStream(); // 得到向客户端输出二进制数据的对象
toClient.write(data); // 输出数据
toClient.close();
}catch(Exception e) {
e.printStackTrace();
}finally {
//try中途发生异常后关闭所有IO流
closeAllIO(toClient, fis);
}
}
//关闭所有IO流
private void closeAllIO(OutputStream toClient,FileInputStream fis) {
try {
if(toClient != null)
toClient.close();
if(fis != null)
fis.close();
}catch(IOException e) {
//iLog.error("IO关闭失败:"+e);
}
}
}
下载文件的servlet,用浏览器直接下载没有问题,用迅雷下载存在两个问题:
1. 会抛出connect reset by peer的异常,我知道是连接断开引起的,但是具体的不是很明白
2. 迅雷下载的时候,文件能够下载成功,但是文件名称是访问的servlet名称,就是web.xml中配置的servlet路径,我设置了HTTP头的文件名称,在迅雷是不起作用的吗?
...全文
相关推荐
迅雷资源种子搜索
在下载过程中,迅雷会根据网络状况智能分配带宽,确保下载速度和稳定性。6. **安全与法律问题**: 使用BT下载需要注意版权问题,确保下载的资源不侵犯他人的知识产权。
Procmon监测迅雷上传文件
**进程名称**:在“进程名称”下拉菜单中选择“包含”,然后输入“Thunder”,这样就可以只显示与迅雷相关的进程活动。2.
迅雷Tsearch种子搜索
下载并安装迅雷资源助手_TSearch,这是Tsearch的客户端软件。2. 启动软件,输入想要搜索的资源名称或关键词。3.
PHPCMS 仿迅雷模板
关于【压缩包子文件的文件名称列表】:1. 双击导入注册.reg:这通常是一个Windows注册表文件,用于向系统注册表添加或修改条目。
快车旋风迅雷链接转换软件
在提供的压缩包文件名称列表中,我们看到以下几个文件:1. AddressGen.bmp:这可能是一个程序的图标文件,用于在用户的桌面上显示该软件的图标。2.


