Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为位于Java文件系统中的文件创建可下载的URL?_Java_Spring_Tomcat_Web_Server - Fatal编程技术网

如何为位于Java文件系统中的文件创建可下载的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

我有带Spring应用程序的本地Tomcat服务器

如何为位于文件系统(例如:C:\Files\file.smth)上的文件创建可下载的URL(例如:)


谢谢

只能使用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(模型、标题);
}