Что могут другие, сможете и вы⏱
предисловие
Когда мы используем SprinBboot для загрузки файла, мы будем загружать файл по указанному пути на жестком диске.В это время, когда мы хотим получить доступ к файлу на стороне клиента, будет ситуация недоступности 404. Далее я буду поделитесь с разработчиками, как настроить виртуальные пути для разрешения недоступных файлов.
Реализовать идеи
- Добавьте класс конфигурации, наследуемый от WebMvcConfigurerAdapter.
- Добавьте реальный путь и виртуальный путь доступа к загруженному файлу на жестком диске в файл yml
- Перепишите метод addResourceHandlers для реализации конфигурации виртуального пути.
Процесс реализации
- Добавьте класс virtualPathConfigAdapter в пакет конфигурации и переопределите метод addResourceHandlers.
package com.lk.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.io.File;
@Configuration
public class virtualPathConfigAdapter extends WebMvcConfigurerAdapter {
// 文件在硬盘中的路径
@Value("${uploadFilePath}")
private String uploadFilePath;
// 虚拟访问的路径
@Value("${virtualUploadPath}")
private String virtualUploadPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/*
* 此处配置的虚拟路径在内置tomcat生效,同时也在外部tomcat生效,外部tomcat使用时无需在配置文件中进行配置
*/
registry.addResourceHandler(virtualUploadPath +"/**").addResourceLocations("file:"+ uploadFilePath + File.separator);
//阿里云(映射路径去除盘符)
//registry.addResourceHandler("/ueditor/image/**").addResourceLocations("/upload/image/");
super.addResourceHandlers(registry);
}
}
- Добавьте конфигурацию в application.yml
# 真实文件存储路径 | 虚拟上传路径
uploadFilePath: "/Volumes/DataStorage/fileStorage/uploads"
virtualUploadPath: "/uploads"
достичь эффекта
Файл по реальному пути на жестком диске
Доступ через браузер через URL
напиши в конце
- Если в статье есть ошибки, исправьте их в комментариях, если статья вам поможет, ставьте лайк и подписывайтесь 😊
- Эта статья была впервые опубликована в Наггетс, если вам нужно перепечатать, пожалуйста, оставьте сообщение в области комментариев 💌