91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2023-03-09 11:26:58 來源:億速云 閱讀:115 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“怎么用springboot+jersey+tomcat實現跨域方式上傳文件到服務器”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么用springboot+jersey+tomcat實現跨域方式上傳文件到服務器”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

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

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

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

如圖:

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

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

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

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

準備工作

首先你得安裝tomcat

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

安裝完成后后啟動

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

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

為了能夠成功上傳文件,需要放開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方法即可

讀到這里,這篇“怎么用springboot+jersey+tomcat實現跨域方式上傳文件到服務器”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洱源县| 奉新县| 瑞安市| 田东县| 兰坪| 绿春县| 仲巴县| 博乐市| 潮州市| 姜堰市| 凉山| 疏附县| 东源县| 石家庄市| 永靖县| 郓城县| 巢湖市| 临沧市| 乌鲁木齐县| 通辽市| 全州县| 喀喇| 双鸭山市| 比如县| 普兰县| 九龙县| 油尖旺区| 刚察县| 乐都县| 永德县| 道孚县| 水城县| 邹城市| 信阳市| 民权县| 临海市| 观塘区| 清远市| 屯留县| 咸阳市| 潞城市|