通过浏览器从servlet下载文件

时间:2018-04-03 15:54:35

标签: java servlets browser download

我应该通过浏览器从服务器下载一个csv文件。 我尝试使用以下代码的servlet

private void writeFile(String filename, String content, HttpServletResponse response) throws IOException {


    String filename="VR.csv";
     try {
     File file = new File(filename);


     FileWriter fw = new FileWriter(file);
     BufferedWriter bw = new BufferedWriter(fw);
     bw.write(content);
     bw.flush();
     bw.close();
     }
     catch(IOException e) {
     e.printStackTrace();
     }


     // This should send the file to browser
     ServletOutputStream out = response.getOutputStream();

    FileInputStream in = new FileInputStream(filename);
     byte[] buffer = new byte[4096];
     int length;
     while ((length = in.read(buffer)) > 0){
        out.write(buffer, 0, length);
     }
     in.close();
     out.flush();



    System.out.println("done"); 

}

但程序没有下载任何文件在Download文件夹中,程序让我在浏览器中看到csv内容。我需要在浏览器的下载文件夹中安装VR.csv。

2 个答案:

答案 0 :(得分:0)

您没有设置回复!如果要下载特定文件,则需要在响应中指定要下载的类型以及特定文件的路径。

         response.setContentType("text/csv");
        response.setHeader("Content-Disposition", "attachment;filename=yourFileName.csv");

答案 1 :(得分:0)

除了上一个答案,你的方法应该有返回类型,如果你使用Spring Framework,它应该有ModelAndView,如下所示

public ModelAndView writeFile(String filename,String content,HttpServletResponse response)抛出IOException {}