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

前言

需求

在Liunx服务器上建立了自己存放图片的文件夹,想通过Springboot进行图片的上传或读取
在这里插入图片描述

效果

上传:
在这里插入图片描述
读取:
在这里插入图片描述
在这里插入图片描述


以下两种方法都可以


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

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

在这里插入图片描述
加上下面这句

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

docBase代表文件路径,path是浏览器访问时的路径。
在这里插入图片描述
添加之后重启tomcat
就可以通过浏览器访问到这个文件里边的内容了
在这里插入图片描述

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

在这里插入图片描述

3.写Springboot后端接口
1)导入maven依赖
<!--跨域上传文件-->
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-core</artifactId>
    <version>1.18.1</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.18.1</version>
</dependency>
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测试
在这里插入图片描述

在这里插入图片描述
上传成功

进入浏览器中也可以看到刚才上传的图片文件
在这里插入图片描述

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

若自己创建的文件夹在tomcat目录的webapps中,如下
在这里插入图片描述
方法与上述类似
不同之处: docBase直接写文件夹文字即可(注意:没有/
在这里插入图片描述
可读写配置在web.xml里边配置
在这里插入图片描述
在这里插入图片描述

> 		  <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>
  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Spring Boot中解决跨域问题可以通过配置文件来实现。一种方式是使用Filter进行设置,另一种方式是通过在Spring Boot项目中配置Cors来实现。如果使用Filter方式,可以在需要跨域访问的类和方法中设置允许跨域访问,例如使用Spring中的@CrossOrigin注解。如果使用Cors配置方式,可以创建一个CorsConfig类,并实现WebMvcConfigurer接口,在addCorsMappings方法中添加跨域规则。具体的代码可以参考以下示例: @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowCredentials(true) .allowedMethods("*") .allowedHeaders("*") .maxAge(3600); } } 这样配置后,就可以解决Spring Boot项目中的跨域问题了。\[2\] #### 引用[.reference_title] - *1* [SpringBoot跨域配置](https://blog.csdn.net/weixin_45977186/article/details/123601258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Spring Boot进阶(38):SpringBoot跨域配置 | 超级详细,建议收藏](https://blog.csdn.net/weixin_43970743/article/details/130662337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羊村你僖哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值