springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

导读:本篇文章讲解 springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、把tomcat做为文件服务器

1、修改tomcat下面的conf/server.xml文件

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

下面这是我用宝塔面板修改tomcat下面的server.xml文件 ,没有改tomcat的启动端口 debug=”0″ 可加可不加,不影响(这里仅仅说明host标签下面一些标签的作业,和上图作用一样)

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

 上图中docBase=”uploadfiles”和appBase=”webapps”,指tomcat文件目录下的 webapps 文件中的 uploadfiles 文件夹(没有创建一个就是下文的第二步)

path=”/uploadfiles” 指可以在 http:// {ip地址(如:127.0.0.1)}:8080/uploadfiles 访问 uploadfiles 文件夹中的文件

<Context docBase="uploadfiles" path="/uploadfiles" debug="0" reloadable="true"/>

2、在tomcat文件下面的webapps文件夹(对应上图的 appBase=”webapps”)中新增uploadfiles文件夹用来存上传后的文件(对应上图的 docBase=”uploadfiles” )

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

3、修改tomcat下面的conf/web.xml文件

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <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>
        <load-on-startup>1</load-on-startup>
    </servlet>

4、启动tomcat,如果是远程服务器修改完即可 

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

5、效果展示:在浏览器中输入 http://{ip地址(如:127.0.0.1)}:8080/uploadfiles

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

二、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代码(使用UUID保证文件不重名)

这里有个坑,就是 myfile.getOriginalFilename() 这串代码是获取图片的名字,但名字带中文的话,上传会失败,所以这里我只加文件名的后缀就行,        String type = myfile.getOriginalFilename().substring(myfile.getOriginalFilename().lastIndexOf(“.”));

    @PostMapping("/upLoadImg")
    @ResponseBody
    public String doRemoteUpload(MultipartFile myfile){

        String path = "http://{ip地址(如:127.0.0.1)}:8080/uploadfiles/";

//为上传到服务器的文件取名,使用UUID防止文件名重复
//        String filename= UUID.randomUUID().toString()+"-"+myfile.getOriginalFilename();
        String type = myfile.getOriginalFilename().substring(myfile.getOriginalFilename().lastIndexOf("."));
        String filename= UUID.randomUUID().toString()+type;
        try{
//使用Jersey客户端上传文件
            Client client = Client.create();
            WebResource webResource = client.resource(path +"/" + URLEncoder.encode(filename,"utf-8"));
            webResource.put(myfile.getBytes());
            System.out.println("上传成功");
            System.out.println("图片路径==》"+path+filename);
        }catch(Exception ex){
            System.out.println("上传失败");
        }
        return "随便写点,关键是看后台上传成功了吗";
    }

 三、使用PostMan测试文件上传

1、

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

2、

springboot跨域上传文件(图片)到Linux远程服务器(本地操作也一样)把tomcat作为文件服务器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74767.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!