我需要在服务器上下文外部的目录中保存文件并下载文件。我正在使用Apache Tomacat 我能够在应用程序的webapps目录中存在的目录中执行此操作
Apache Tomacat
如果我的目录结构如下,
--src --WebContent -- uploaddir -- myfile.txt
然后我就可以简单地下载了。
<a href="uploaddir/myfile.txt" target="_blank">download</a>
但是,问题是文件在其他目录中时 d:\\uploadedfile\\myfile.txt
d:\\uploadedfile\\myfile.txt
那么我将无法下载它,因为资源不在上述服务器上下文中。
我有uuid映射的文件路径,例如,
d:\\uploadedfiles\\myfile.txt <-> some_uuid
然后我要下载文件,点击以下按钮,
<a href="filedownloadservlet?ref_file=some_uuid">download</a>
因此,当文件不在服务器环境中时如何使文件可下载,我听说了getResourceAsStream()可以执行此操作的方法,但是有可能有人会用简单的代码段来帮助我完成该操作吗?
getResourceAsStream()
在这里我找到了答案,
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();