欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot+jersey+tomcat實現跨域方式上傳文件到服務器的方式

 更新時間:2023年03月09日 10:51:30   作者:相與還  
這篇文章主要介紹了springboot+jersey+tomcat實現跨域方式上傳文件到服務器,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

在服務器上,當我們啟動了tomcat,就可以以

http://ip地址:8080/文件路徑/文件名

的方式,進行訪問到我們服務器上處于tomcat的webapps文件夾下的文件

如圖:

上面我是用的http://47.92.53.108:8080/IMG/img04.jpg進行訪問文件

于是為了可以往上面加文件,我們有兩種方式,一種就是直接復制文件到路徑上,

另一種自然是通過代碼的方式,調用接口往上面上傳文件

準備工作

首先你得安裝tomcat

在這里插入圖片描述

安裝完成后后啟動

然后,需要注意的是,為了讓我們能夠訪問文件,那么我們需要做這么一件事,開放服務器的安全策略
把端口8080放開

在這里插入圖片描述

為了能夠成功上傳文件,需要放開tomcat的寫權限,
即解決報錯returned a response status of 405 Method Not Allowed

在tomcat的conf文件夾,找到web.xml文件,添加如下代碼

<!-- 使得服務器允許文件寫入。-->
		<init-param>
            <param-name>readonly</param-name>
            <param-value>false</param-value>
        </init-param>

注意,該代碼需要在servlet標簽內部添加,即:

    <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>false</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>

加完代碼記得重啟tomcat

上傳文件代碼

在pom.xml文件加入代碼:

        <!--        跨域上傳依賴-->
        <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>
@PostMapping("/upLoadImg")
    @ResponseBody
    public String upLoadImg(MultipartFile myfile){
 
        String path = "http://服務器公網ip:8080/tomcat的webapps下的文件夾名稱/";
 
//為上傳到服務器的文件取名,使用UUID防止文件名重復
        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 "上傳成功";
    }

以上會隨機生成uuid作為文件名
如果想保留原本文件名稱,參考如下代碼
有一個需要注意的是:如果以原文件名命名進行上傳,文件名不能包含中文
否則會報錯400

    @PostMapping("/upLoadImg")
    @ResponseBody
    public String doRemoteUpload(@RequestParam("file")MultipartFile file){
        String path = "http://服務器公網ip:8080/tomcat的webapps下的文件夾名稱/";
        String filename= file.getOriginalFilename();
        try{
            Client client = Client.create();
            WebResource webResource = client.resource(path +"/" + filename);
            webResource.put(file.getBytes());
        }catch(Exception ex){
            return "上傳文件失敗:"+path+"/"+filename;
        }
        return "上傳文件成功:"+path+"/"+filename;
    }

導入的import為:

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;

刪除服務器文件

    @GetMapping("/deleteUploadImg")
    @ResponseBody
    public ResultVO deleteUploadImg(){

        String path = "http://服務器公網ip:8080/tomcat的webapps下的文件夾名稱/文件名";
        try{
            Client client = Client.create();
            WebResource webResource = client.resource(path);
            webResource.delete();
        }catch(Exception ex){
            return "刪除文件失敗:"+path+"/"+filename+ ex.getMessage();
        }
        return "刪除文件成功:"+path+"/"+filename;
    }

如果需要 刪除文件

只需要把文件的路徑傳入
并且使用WebResourcedelete方法即可

結語

以上就是直接通過tomcat跨域上傳文件到服務器的方式

到此這篇關于springboot+jersey+tomcat實現跨域方式上傳文件到服務器的文章就介紹到這了,更多相關springboot跨域方式上傳文件到服務器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java實現優(yōu)酷視頻地址解析示例代碼分享

    java實現優(yōu)酷視頻地址解析示例代碼分享

    最近做了一個在線視頻的下載器,需要解析youku的視頻,獲得真正的視頻地址,現在把解析過程記錄下來以供參考
    2014-01-01
  • MybatisPlus 主鍵策略的幾種實現方法

    MybatisPlus 主鍵策略的幾種實現方法

    MybatisPlus-Plus支持多種主鍵生成策略,可以通過@TableId注解的type屬性配置,主要策略包括AUTO、INPUT、ASSING_ID、ASSING_UUID和NONE,每種策略適用于不同的場景,下面就來介紹一下
    2024-10-10
  • 基于@Bean修飾的方法參數的注入方式

    基于@Bean修飾的方法參數的注入方式

    這篇文章主要介紹了@Bean修飾的方法參數的注入方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔斷的示例

    Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔斷的示例

    這篇文章主要介紹了Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔斷的示例,幫助大家更好的理解和學習使用Spring Cloud,感興趣的朋友可以了解下
    2021-03-03
  • java自動生成ID號的方法

    java自動生成ID號的方法

    這篇文章主要介紹了java自動生成ID號的方法,涉及java生成ID號的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • JAVA使用爬蟲抓取網站網頁內容的方法

    JAVA使用爬蟲抓取網站網頁內容的方法

    這篇文章主要介紹了JAVA使用爬蟲抓取網站網頁內容的方法,實例分析了java爬蟲的兩種實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Java16新特性record類使用細節(jié)示例詳解

    Java16新特性record類使用細節(jié)示例詳解

    這篇文章主要為大家介紹了Java16新特性record類使用細節(jié)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Mybatis-Plus同時使用邏輯刪除和唯一索引的問題及解決辦法(報數據重復Duplicate entry的問題)

    Mybatis-Plus同時使用邏輯刪除和唯一索引的問題及解決辦法(報數據重復Duplicate entry的

    在開發(fā)中,我們經常會有邏輯刪除和唯一索引同時使用的情況,但當使用mybatis plus時,如果同時使用邏輯刪除和唯一索引,會報數據重復Duplicate entry的問題,如何解決這個問題呢,小編給大家分享Mybatis-Plus同時使用邏輯刪除和唯一索引的問題及解決辦法,一起看看吧
    2023-11-11
  • 教你在SpringBoot中管理多環(huán)境配置文件

    教你在SpringBoot中管理多環(huán)境配置文件

    在項目開發(fā)中,一般會分為開發(fā)環(huán)境,測試環(huán)境和生產環(huán)境.如果總是在一個文件中修修改改,難免會出現錯誤,尤其是在交接的過程中,一旦出現問題,輕則丟失績效,重則需要刪庫跑路.本文則帶大家詳細了解怎么管理多環(huán)境配置文件,需要的朋友可以參考下
    2021-05-05
  • Java中Calendar時間操作常用方法詳解

    Java中Calendar時間操作常用方法詳解

    這篇文章主要為大家詳細介紹了Java中Calendar時間操作常用方法,calendar中set方法和靜態(tài)屬性帶來的一些坑,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評論