一尘不染

Java:在服务器上下文外部下载文件

jsp

我需要在服务器上下文外部的目录中保存文件并下载文件。我正在使用Apache Tomacat 我能够在应用程序的webapps目录中存在的目录中执行此操作

如果我的目录结构如下,

--src
--WebContent
    -- uploaddir
         -- myfile.txt

然后我就可以简单地下载了。

      <a href="uploaddir/myfile.txt" target="_blank">download</a>

但是,问题是文件在其他目录中时 d:\\uploadedfile\\myfile.txt

那么我将无法下载它,因为资源不在上述服务器上下文中。

我有uuid映射的文件路径,例如,

d:\\uploadedfiles\\myfile.txt <-> some_uuid

然后我要下载文件,点击以下按钮,

   <a href="filedownloadservlet?ref_file=some_uuid">download</a>

因此,当文件不在服务器环境中时如何使文件可下载,我听说了getResourceAsStream()可以执行此操作的方法,但是有可能有人会用简单的代码段来帮助我完成该操作吗?


阅读 317

收藏
2020-06-10

共1个答案

一尘不染

在这里我找到了答案,

 response.setContentType("application/msword");
 response.setHeader("Content-Disposition","attachment;filename=downloadname.doc");
 File file=new File("d:\\test.doc");
 InputStream is=new FileInputStream(file);
 int read=0;
 byte[] bytes = new byte[BYTES_DOWNLOAD];
 OutputStream os = response.getOutputStream();
 while((read = is.read(bytes))!= -1){
  os.write(bytes, 0, read);
 }
 os.flush();
 os.close();
2020-06-10