JavaWeb中的文件下载
1、文件名,只用纯粹的文件名就可以了,但是必须放在项目的根目录下
2、try{
String name="下载.txt";//注意这里是中文名,所以要特别处理
String realPath=request.getRealPath(name);
String fileName=java.net.URLEncoder.encode(name,"utf-8");//采用utf-8编码文件名
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition","attachment;filename="+fileName);
response.setContentType("text/plain");//MIME类型
PrintWriter out=response.getWriter();
String realPath=request.getRealPath(name);
realPath=realPath.substring(0,realPath.lastIndexOf('//'))+File.separatorChar+name;//注意这里
//千万不能在用file,因为它已经进过编码了,所以会抛出找不到文件异常。
FileReader reader=new FileReader(new File(realPath));
BufferedReader bf=new BufferedReader(reader);
while((name=bf.readLine())!=null){//从文件中读出内容
out.println(name);//读出文件并写入输出流中
}
}catch(IOException e}{
}
至此,文件下载时能支持中文文件名。
1、文件名,只用纯粹的文件名就可以了,但是必须放在项目的根目录下
2、try{
String name="下载.txt";//注意这里是中文名,所以要特别处理
String realPath=request.getRealPath(name);
String fileName=java.net.URLEncoder.encode(name,"utf-8");//采用utf-8编码文件名
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition","attachment;filename="+fileName);
response.setContentType("text/plain");//MIME类型
PrintWriter out=response.getWriter();
String realPath=request.getRealPath(name);
realPath=realPath.substring(0,realPath.lastIndexOf('//'))+File.separatorChar+name;//注意这里
//千万不能在用file,因为它已经进过编码了,所以会抛出找不到文件异常。
FileReader reader=new FileReader(new File(realPath));
BufferedReader bf=new BufferedReader(reader);
while((name=bf.readLine())!=null){//从文件中读出内容
out.println(name);//读出文件并写入输出流中
}
}catch(IOException e}{
}
至此,文件下载时能支持中文文件名。