上传文件(图片)至服务器,返回文件(图片)访问路径url

您所在的位置:网站首页 图片url地址生成 上传文件(图片)至服务器,返回文件(图片)访问路径url

上传文件(图片)至服务器,返回文件(图片)访问路径url

2023-11-04 10:31| 来源: 网络整理| 查看: 265

接到一个需求:实现上传文件(图片)功能,并把文件(图片)保存到服务器文件夹下,返回可以访问的路径url(因为前端需要“回显”上传的图片)。

1、设置绝对路径

在spring boot项目打成jar包后,可以成功上传。但是根据返回的url,找不到上传成功的文件。这时候我们需要为上传文件设置绝对路径。

#文件上传目录(注意Linux和Windows上的目录结构不同) file: uploadFolder: D:///szzb-welfarework/import/img/zzysj/

注意文件路径最后的 “/” 

2、设置虚拟路径,映射访问绝对路径下资源 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //配置资源映射:设置虚拟路径,访问绝对路径下资源:访问 http://localhost:9090/api/file/xxx.txt访问d:///uploadFiles/下的资源 registry.addResourceHandler("/api/file/**") //虚拟路径 .addResourceLocations("file:" + "D:///szzb-welfarework/import/img/zzysj/"); //绝对路径 } }

3、文件(图片)上传实现

/** * 图片保存路径,自动从yml配置文件中获取数据 */ @Value("${file.uploadFolder}") private String uploadPath; /** * 文件(图片)上传 * @param file 图片文件 */ @SneakyThrows @Override public String uploadFile(MultipartFile file, String projectId, HttpServletRequest request) { //文件原名称 String oldFilename = file.getOriginalFilename(); //图片名后缀:.jpg、.png String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); //uuid String uuid = UUID.randomUUID().toString(); //文件新名称 String newFileName = uuid + suffix; //创建保存上传文件的文件夹 File folder = new File(uploadPath + newFileName); if (!folder.getParentFile().exists()) { folder.getParentFile().mkdirs(); } //文件写入到该文件夹下 file.transferTo(folder); //获得本机Ip(获取的是服务器的Ip) InetAddress inetAddress = InetAddress.getLocalHost(); String ip = inetAddress.getHostAddress(); //返回保存的url,根据url可以进行文件查看或者下载 String fileDownloadUrl = request.getScheme() + "://" + ip + ":" + request.getServerPort() + "/api/file/" + newFileName; //ps: 在这里可以把路径url存到数据库 //Entity entity = new Entity() //entity.setUrl(fileDownloadUrl); //返回保存的url return fileDownloadUrl; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3