Springboot跨域远程上传图片文件到Linux云服务器指定路径

跨域上传和读取文件

  • 前言
    • 需求
    • 效果
  • 一、若文件夹创建在自定义的位置
        • 1.进入宝塔面板修改tomcat的server.xml文件
        • 2.对创建的files文件设置可读写权限
        • 3.写Springboot后端接口
          • 1)导入maven依赖
          • 2)在 application.yaml 文件中设置最大传输文件容量
          • 3)写controller层
        • 4.测试接口
  • 二、若文件夹创建在tomcat目录的webapps中

前言

需求

在Liunx服务器上建立了自己存放图片的文件夹,想通过Springboot进行图片的上传或读取
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第1张图片

效果

上传:
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第2张图片
读取:
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第3张图片
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第4张图片


以下两种方法都可以


一、若文件夹创建在自定义的位置

1.进入宝塔面板修改tomcat的server.xml文件

Springboot跨域远程上传图片文件到Linux云服务器指定路径_第5张图片
加上下面这句

<Context docBase ="/home/springbootVue/files" path ="/home/springbootVue/files" debug ="0" reloadable ="true"/>

docBase代表文件路径,path是浏览器访问时的路径。
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第6张图片
添加之后重启tomcat
就可以通过浏览器访问到这个文件里边的内容了
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第7张图片

2.对创建的files文件设置可读写权限
chmod 777  '文件名'

在这里插入图片描述

3.写Springboot后端接口
1)导入maven依赖


    com.sun.jersey
    jersey-core
    1.18.1


    com.sun.jersey
    jersey-client
    1.18.1

2)在 application.yaml 文件中设置最大传输文件容量
spring:
  servlet:
    multipart:
      enabled: true
      max-file-size: 30MB
      max-request-size: 30MB
3)写controller层
@RestController
public class FileController {
    @PostMapping("/upload")
    public String Upload(MultipartFile file){
    
        String path = "http://主机号:8080/home/springbootVue/files/";

//以当前时间命名图片的名字(也可使用其他方法命名 比如UUID)
        String originalFilename = file.getOriginalFilename();
        //新文件名前缀
        String fileNamePrefix = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        //新文件名后缀
        String fileNameSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        String newFileName=fileNamePrefix+fileNameSuffix;

        try{
//使用Jersey客户端上传文件
            Client client = Client.create();
            WebResource webResource = client.resource(path + newFileName);
            webResource.put(file.getBytes());
            System.out.println("上传成功");
            System.out.println("图片路径==》"+path+newFileName);
        }catch(Exception e){
            System.out.println("上传失败");
        }
        return "";
    }
  }

该段代码部分参考博主「我认不到你」
原文链接:https://blog.csdn.net/qq_57581439/article/details/124892306

4.测试接口

使用Postman测试
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第8张图片

Springboot跨域远程上传图片文件到Linux云服务器指定路径_第9张图片
上传成功

进入浏览器中也可以看到刚才上传的图片文件
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第10张图片

二、若文件夹创建在tomcat目录的webapps中

若自己创建的文件夹在tomcat目录的webapps中,如下
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第11张图片
方法与上述类似
不同之处: docBase直接写文件夹文字即可(注意:没有/
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第12张图片
可读写配置在web.xml里边配置
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第13张图片
Springboot跨域远程上传图片文件到Linux云服务器指定路径_第14张图片

> 		  <init-param>
>             <param-name>listings</param-name>
>             <param-value>true</param-value>
>         </init-param>
>         <init-param>
>             <param-name>readonly</param-name>
>             <param-value>false</param-value>
>         </init-param>

你可能感兴趣的:(服务器,spring,boot,linux,java,tomcat)