下载本地磁盘文件
小于 1 分钟languagejava
源码实现
制作 api 路径
package com.xdf.zipperdye.config;
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfigure implements WebMvcConfigurer {
@Value("${globalv.virtualpath}")
private String virtualpath;
@Value("${globalv.filepath}")
private String filepath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// windows 系统使用下面的方式
// registry.addResourceHandler("/drawing/**").addResourceLocations("file:E:/drawingfiles/");
// linux 系统使用下面方式
registry.addResourceHandler(virtualpath).addResourceLocations("file:" + filepath);
}
@Bean
public TomcatServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}");
connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}");
}
});
return factory;
}
}
配置文件指定绝对路径
在 springboot 项目配置文件 application.yml 中制作自定义的变量 globalv 注意如果 java 源码中 "file:" 后面没有使用斜线,则配置文件必须以斜线开头,表示绝对路径 同时在最后一个目录后面也必须有斜线,否则无法下载
globalv:
# filepath: e:/drawingfiles/ # windows服务器
filepath: /data/extdisk/shunjie/customsfiles/ # linux 服务器
virtualpath: /drawing/**
finereport: d:/software/FineReport9.0/WebReport
使用
以顺杰项目为例,访问地址是:https://www.barrel.fit/shunjiebe/drawing/文件名.txt 中间的 shunjiebe 是 nginx 反向代理的项目名称,后面的 drawing 是 java 源码中使用的 virtualpath
