现在的位置: 首页 > 综合 > 正文

Servlet文件下载

2013年10月10日 ⁄ 综合 ⁄ 共 819字 ⁄ 字号 评论关闭
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}{
  }
 
至此,文件下载时能支持中文文件名。 

抱歉!评论已关闭.