如何为位于Java文件系统中的文件创建可下载的URL?
我有带Spring应用程序的本地Tomcat服务器 如何为位于文件系统(例如:C:\Files\file.smth)上的文件创建可下载的URL(例如:)如何为位于Java文件系统中的文件创建可下载的URL?,java,spring,tomcat,web,server,Java,Spring,Tomcat,Web,Server,我有带Spring应用程序的本地Tomcat服务器 如何为位于文件系统(例如:C:\Files\file.smth)上的文件创建可下载的URL(例如:) 谢谢 只能使用URL访问配置的文档根目录下的文件或web服务器。(其他一切都将是一个巨大的安全漏洞) 对于文档根目录下的文件,请删除上面的部分路径,包括文档根目录、前置协议和主机。将所有反斜杠字符替换为斜杠 示例:您的文档根目录是c:\www\my\u site\,您希望为c:\www\my\u site\some\path\my\u file
谢谢 只能使用URL访问配置的文档根目录下的文件或web服务器。(其他一切都将是一个巨大的安全漏洞) 对于文档根目录下的文件,请删除上面的部分路径,包括文档根目录、前置协议和主机。将所有反斜杠字符替换为斜杠
示例:您的文档根目录是
c:\www\my\u site\
,您希望为c:\www\my\u site\some\path\my\u file.txt创建一个URL
结果将是`在春季,我们可以这样做:提供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);
}
@RequestMapping(“/models/{fileId}.smth”)
@应答器
公共HttpEntity getFile(@PathVariable String fileId)引发IOException{
byte[]model=org.apache.commons.io.FileUtils.readFileToByteArray(新文件(“C:/folder/”+fileId+“.smth”);
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.MULTIPART\u FORM\u DATA);
headers.setContentLength(model.length);
返回新的HttpEntity(模型、标题);
}