我有Spring应用程序的本地Tomcat服务器。
如何为位于文件系统上的文件创建可下载的URL(例如:http://localhost:8080/file.smth)(例如:C:\ Files \ file.smth)?
谢谢!
答案 0 :(得分:1)
只能使用URL访问配置的文档根目录下的文件或Web服务器。 (其他一切都将是一个巨大的安全漏洞)
对于文档根目录下面的文件,删除上面路径的一部分,包括文档根目录,并预先添加协议和主机。用斜杠替换所有反斜杠字符。
示例:您的文档根目录为c:\www\my_site\
,并且您要为c:\www\my_site\some\path\my_file.txt
创建一个网址,结果将是“http://localhost:8080/some/path/my_file.txt'
答案 1 :(得分:0)
在Spring中我们可以这样做:提供GET请求以从可下载链接获取文件。
@RequestMapping("/models/{fileId}.smth")
@ResponseBody
public HttpEntity<byte[]> getFile(@PathVariable String fileId) throws IOException {
byte[] model = org.apache.commons.io.FileUtils.readFileToByteArray(new File( "C:/folder/" + fileId + ".smth"));
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.setContentLength(model.length);
return new HttpEntity<byte[]>(model, headers);
}