国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring MVC異步上傳、跨服務(wù)器上傳和文件下載

這篇具有很好參考價(jià)值的文章主要介紹了Spring MVC異步上傳、跨服務(wù)器上傳和文件下載。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、異步上傳

之前的上傳方案,在上傳成功后都會(huì)跳轉(zhuǎn)頁(yè)面。而在實(shí)際開發(fā)中,很多情況下上傳后不進(jìn)行跳轉(zhuǎn),而是進(jìn)行頁(yè)面的局部刷新,比如:上傳頭像成功后將頭像顯示在網(wǎng)頁(yè)中。這時(shí)候就需要使用異步文件上傳。

1.1 JSP頁(yè)面

編寫JSP頁(yè)面,引入jQuery和jQuery表單上傳工具jquery.form.js【該js文件已經(jīng)上傳到我的資源,有需要的小伙伴可以自行下載】

upload4.jsp?

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>上傳</title>
    <script src="/js/jquery-2.1.1.min.js"></script>
    <script src="/js/jquery.form.js"></script>
</head>
<body>
<h3>文件上傳</h3>
<form id="ajaxForm" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <%-- 按鈕類型不能是submit,否則會(huì)刷新頁(yè)面 --%>
    <input type="button" value="上傳頭像" id="btn"/>
    <!-- 上傳頭像后展示的位置 -->
    <img src="/" width="100" id="img">
    <script>
        $(function () {
            $("#btn").click(function () {
                // 異步提交表單
                $("#ajaxForm").ajaxSubmit({
                    url: "/fileUpload4",
                    type: "post",
                    success: function (data) {
                        $("#img").attr("src", data);
                        console.log(data);
                    }
                })
            })
        })
    </script>
</form>
</body>
</html>

1.2 控制器方法

// 接收異步上傳請(qǐng)求
    @RequestMapping("/fileUpload4")
    // 不進(jìn)行頁(yè)面跳轉(zhuǎn)
    @ResponseBody
    public String upload3(HttpServletRequest request,MultipartFile file) throws Exception{
        // 1.設(shè)置上傳文件保存的文件夾,存放上傳的文件
        String realPath = request.getSession().getServletContext().getRealPath("/upload");
        File dir = new File(realPath);
        if(!dir.exists()){
            dir.mkdirs();
        }

        // 拿到上傳文件名
        String filename = file.getOriginalFilename();
        filename = UUID.randomUUID()+"_"+filename;
        // 創(chuàng)建空文件
        File newFile = new File(dir,filename);
        // 將上傳的文件寫到空文件中
        file.transferTo(newFile);
        System.out.println("/upload/"+filename);
        return "/upload/"+filename;
    }

1.3 測(cè)試結(jié)果

訪問(wèn)路徑:http://localhost:8080/upload4.jsp

Spring MVC異步上傳、跨服務(wù)器上傳和文件下載,ssm框架,# Spring MVC,java,maven,spring,mvc

OK,我們可以看得出來(lái)確實(shí)只刷新了頭像那一部分的頁(yè)面。本次案例成功實(shí)現(xiàn)?

二、跨服務(wù)器上傳

Spring MVC異步上傳、跨服務(wù)器上傳和文件下載,ssm框架,# Spring MVC,java,maven,spring,mvc

由于文件占據(jù)磁盤空間較大,在實(shí)際開發(fā)中往往會(huì)將文件上傳到其他服務(wù)器中,此時(shí)需要使用跨服務(wù)器上傳文件。

2.1 修改tomcat的部分配置

1. 解壓tomcat作為圖片服務(wù)器,在tomcat的webapps下創(chuàng)建upload目錄作為文件上傳目錄。

Spring MVC異步上傳、跨服務(wù)器上傳和文件下載,ssm框架,# Spring MVC,java,maven,spring,mvc

這是我自己的tomcat安裝目錄,新建一個(gè)upload文件夾。?

2. 修改tomcat的 conf/web.xml 文件,支持跨服上傳。

<servlet> ?
??<init-param> ???
????<param-name>readonly</param-name>
????<param-value>false</param-value> 
??</init-param>
</servlet>

3. 修改tomcat的 conf/server.xml 文件,修改tomcat端口,修改完開啟tomcat服務(wù)器,如下圖:

<Connector port="8081" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" />

?Spring MVC異步上傳、跨服務(wù)器上傳和文件下載,ssm框架,# Spring MVC,java,maven,spring,mvc

?雙擊運(yùn)行

Spring MVC異步上傳、跨服務(wù)器上傳和文件下載,ssm框架,# Spring MVC,java,maven,spring,mvc

出現(xiàn)該頁(yè)面,不要關(guān)閉這個(gè)頁(yè)面!??!?

2.2 JSP頁(yè)面

這里的內(nèi)容和上面的JSP沒(méi)有區(qū)別!只是響應(yīng)的路徑不一樣。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>上傳</title>
    <script src="/js/jquery-2.1.1.min.js"></script>
    <script src="/js/jquery.form.js"></script>
</head>
<body>
<h3>文件上傳</h3>
<form id="ajaxForm" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <%-- 按鈕類型不能是submit,否則會(huì)刷新頁(yè)面 --%>
    <input type="button" value="上傳頭像" id="btn"/>
    <!-- 上傳頭像后展示的位置 -->
    <img src="/" width="100" id="img">
    <script>
        $(function () {
            $("#btn").click(function () {
                // 異步提交表單
                $("#ajaxForm").ajaxSubmit({
                    url: "/fileUpload5",
                    type: "post",
                    success: function (data) {
                        $("#img").attr("src", data);
                        console.log(data);
                    }
                })
            })
        })
    </script>
</form>
</body>
</html>

2.3 添加依賴

這里我們需要在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>

2.4?控制器方法

創(chuàng)建控制器方法,該方法在接受到上傳請(qǐng)求后將文件保存到其他服務(wù)器上。

    // 該方法接收到上傳請(qǐng)求后將文件保存到其他服務(wù)器上
    @RequestMapping("/fileUpload5")
    @ResponseBody
    public String upload4(HttpServletRequest request,MultipartFile file) throws Exception{
        // 設(shè)置跨服上傳的服務(wù)器路徑
        String path = "http://localhost:8081/upload/";
        // 獲取上傳的文件名
        String filename = file.getOriginalFilename();
        filename = UUID.randomUUID()+"_"+filename;
        
        // 跨服上傳:
        // 1.創(chuàng)建客戶端對(duì)象
        Client client = Client.create();
        // 2.使用客戶端對(duì)象連接圖片服務(wù)器
        WebResource resource = client.resource(path+filename);
        // 3.傳輸數(shù)據(jù)
        resource.put(file.getBytes());
        System.out.println(path+filename);
        return path+filename;
    }

2.5?測(cè)試結(jié)果?

訪問(wèn)路徑:http://localhost:8080/upload5.jsp

Spring MVC異步上傳、跨服務(wù)器上傳和文件下載,ssm框架,# Spring MVC,java,maven,spring,mvc

可以看得到確實(shí)成功上傳到了服務(wù)器上面的upload目錄下

三、文件下載

將文件上傳到服務(wù)器后,有時(shí)我們需要讓用戶下載上傳的文件,接下來(lái)我們編寫文件下載功能:

3.1 查詢可下載文件方法

編寫控制器方法,查詢所有可下載的文件(我這里是查詢存放在/webapps/upload/目錄下的圖片),并跳轉(zhuǎn)到下載頁(yè)面

// 查詢可下載的文件
    @RequestMapping("/showFiles")
    public String showFileDown(HttpServletRequest request, Model model){
        // 1.獲取下載文件路徑集合。注:跨服務(wù)器上傳中,網(wǎng)絡(luò)路徑無(wú)法獲取文件列表。
        String path = request.getSession().getServletContext().getRealPath("/upload");
        File file = new File(path);
        String [] files = file.list();
        // 2.將路徑放入模型中,跳轉(zhuǎn)到JSP頁(yè)面
        model.addAttribute("files",files);
        return "download";
    }

3.2 添加JSTL依賴

    <!-- 添加JSTL依賴 -->
    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-spec</artifactId>
      <version>1.2.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-impl</artifactId>
      <version>1.2.5</version>
    </dependency>

3.3 編寫下載頁(yè)面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>下載</title>
</head>
<body>
<h3>文件下載</h3>
<%-- 遍歷文件集合  --%>
<c:forEach items="${files}" var="file">
    <a href="/download?fileName=${file}">${file}</a><br/>
</c:forEach>
</body>
</html>

3.4 下載控制器方法

    // 文件下載
    @RequestMapping("/download")
    public void fileDown(HttpServletRequest request, HttpServletResponse response,String fileName) throws Exception{
        // 設(shè)置響應(yīng)頭
        response.setHeader("Content-Disposition","attachment;filename="+fileName);
        // 獲取文件路徑
        String path = request.getSession().getServletContext().getRealPath("/upload");
        File file = new File(path,fileName);
        // 獲取字節(jié)輸出流
        ServletOutputStream os = response.getOutputStream();

        // 使用輸出流寫出文件
        os.write(FileUtils.readFileToByteArray(file));
        os.flush();
        os.close();
    }

3.5 測(cè)試結(jié)果

OK,我們先來(lái)訪問(wèn)http://localhost:8080/showFiles

查詢出所有可以下載的文件:然后點(diǎn)擊下載也是可以成功下載,文件的上傳和下載就學(xué)習(xí)到這里了。

Spring MVC異步上傳、跨服務(wù)器上傳和文件下載,ssm框架,# Spring MVC,java,maven,spring,mvc

往期專欄&文章相關(guān)導(dǎo)讀?

?????大家如果對(duì)于本期內(nèi)容有什么不了解的話也可以去看看往期的內(nèi)容,下面列出了博主往期精心制作的Maven,Mybatis等專欄系列文章,走過(guò)路過(guò)不要錯(cuò)過(guò)哎!如果對(duì)您有所幫助的話就點(diǎn)點(diǎn)贊,收藏一下啪。其中Spring專欄有些正在更,所以無(wú)法查看,但是當(dāng)博主全部更完之后就可以看啦。

1. Maven系列專欄文章

Maven系列專欄 Maven工程開發(fā)
Maven聚合開發(fā)【實(shí)例詳解---5555字】

2. Mybatis系列專欄文章

Mybatis系列專欄 MyBatis入門配置
Mybatis入門案例【超詳細(xì)】
MyBatis配置文件 —— 相關(guān)標(biāo)簽詳解
Mybatis模糊查詢——三種定義參數(shù)方法和聚合查詢、主鍵回填
Mybatis動(dòng)態(tài)SQL查詢 --(附實(shí)戰(zhàn)案例--8888個(gè)字--88質(zhì)量分)
Mybatis分頁(yè)查詢——四種傳參方式
Mybatis一級(jí)緩存和二級(jí)緩存(帶測(cè)試方法)
Mybatis分解式查詢
Mybatis關(guān)聯(lián)查詢【附實(shí)戰(zhàn)案例】
MyBatis注解開發(fā)---實(shí)現(xiàn)增刪查改和動(dòng)態(tài)SQL
MyBatis注解開發(fā)---實(shí)現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢

3. Spring系列專欄文章

Spring系列專欄 Spring IOC 入門簡(jiǎn)介【自定義容器實(shí)例】
IOC使用Spring實(shí)現(xiàn)附實(shí)例詳解
Spring IOC之對(duì)象的創(chuàng)建方式、策略及銷毀時(shí)機(jī)和生命周期且獲取方式
Spring DI簡(jiǎn)介及依賴注入方式和依賴注入類型
Spring IOC相關(guān)注解運(yùn)用——上篇
Spring IOC相關(guān)注解運(yùn)用——下篇
Spring AOP簡(jiǎn)介及相關(guān)案例
注解、原生Spring、SchemaBased三種方式實(shí)現(xiàn)AOP【附詳細(xì)案例】
Spring事務(wù)簡(jiǎn)介及相關(guān)案例
Spring 事務(wù)管理方案和事務(wù)管理器及事務(wù)控制的API
Spring 事務(wù)的相關(guān)配置、傳播行為、隔離級(jí)別及注解配置聲明式事務(wù)

4. Spring MVC系列專欄文章???

SpringMVC系列專欄 Spring MVC簡(jiǎn)介附入門案例
Spring MVC各種參數(shù)獲取及獲取方式自定義類型轉(zhuǎn)換器和編碼過(guò)濾器
Spring MVC獲取參數(shù)和自定義參數(shù)類型轉(zhuǎn)換器及編碼過(guò)濾器
Spring MVC處理響應(yīng)附案例詳解
Spring MVC相關(guān)注解運(yùn)用 —— 上篇

Spring MVC相關(guān)注解運(yùn)用 —— 中篇文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-562508.html

Spring MVC相關(guān)注解運(yùn)用 —— 下篇
Spring MVC多種情況下的文件上傳
Spring MVC異步上傳、跨服務(wù)器上傳和文件下載
Spring MVC異常處理【單個(gè)控制異常處理器、全局異常處理器、自定義異常處理器】
Spring MVC攔截器和跨域請(qǐng)求
SSM整合案例【C站講解最詳細(xì)流程的案例】

到了這里,關(guān)于Spring MVC異步上傳、跨服務(wù)器上傳和文件下載的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java從ftp服務(wù)器上傳與下載文件

    業(yè)務(wù)需要從ftp服務(wù)器上上傳、下載、刪除文件等功能,通過(guò)查閱資料及手動(dòng)敲打代碼,實(shí)現(xiàn)了操作ftp的基本功能,有需求的小伙伴可以看看具體的實(shí)現(xiàn)過(guò)程。 摘自百度百科:文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)是用于在 網(wǎng)絡(luò) 上進(jìn)行文件傳輸?shù)囊惶讟?biāo)準(zhǔn)協(xié)議,F(xiàn)TP允許用戶以

    2024年02月07日
    瀏覽(34)
  • Java從sftp服務(wù)器上傳與下載文件

    業(yè)務(wù)需要從sftp服務(wù)器上上傳、下載、刪除文件等功能,通過(guò)查閱資料及手動(dòng)敲打代碼,實(shí)現(xiàn)了操作sftp的基本功能,有需求的小伙伴可以看看具體的實(shí)現(xiàn)過(guò)程。 摘自百度百科:SSH文件傳輸協(xié)議,是一種數(shù)據(jù)流鏈接,提供文件訪問(wèn)、傳輸和管理功能的網(wǎng)絡(luò)傳輸協(xié)議。 SFTP允許用

    2024年02月11日
    瀏覽(33)
  • 在Linux系統(tǒng)(服務(wù)器)使用阿里云盤服務(wù)快速上傳下載文件

    在Linux系統(tǒng)(服務(wù)器)使用阿里云盤服務(wù)快速上傳下載文件

    使用集群服務(wù)器的時(shí)候,尤其是當(dāng)服務(wù)器有多個(gè)節(jié)點(diǎn)時(shí)有些復(fù)雜,連接集群我們一般用xshell,傳輸文件我們一般使用Xftp,一般對(duì)于單個(gè)節(jié)點(diǎn)服務(wù)器來(lái)說(shuō)是方便的,使用Xftp還可以可視化本地和服務(wù)器端的文件,但當(dāng)有多個(gè)節(jié)點(diǎn)時(shí),這就不適用了,他不能選擇節(jié)點(diǎn),有局限,連接

    2024年02月04日
    瀏覽(26)
  • 用mac終端給Linux服務(wù)器上傳、下載文件

    用mac終端給Linux服務(wù)器上傳、下載文件

    一、 (1)打開終端,在shell菜單下找到:\\\"新建遠(yuǎn)程連接\\\"。 (2)在\\\"新建遠(yuǎn)程連接\\\"下,找到\\\"安全文件傳輸(sftp)\\\"。 ?(3)新建新的IP,輸入用戶,點(diǎn)擊\\\"連接\\\",輸入密碼,進(jìn)入sftp傳輸界面。 (4) 上傳mac本地文件至Linux服務(wù)器:put localfiledirectory remotefiledirectory 下載Linux服務(wù)器

    2024年02月16日
    瀏覽(34)
  • 怎么用SecureCRT從Linux服務(wù)器上傳、下載文件?

    怎么用SecureCRT從Linux服務(wù)器上傳、下載文件?

    我們?cè)谑褂胠inux的過(guò)程中,不論是為了安裝相關(guān)軟件,還是其它目的,都可能需要上傳或者下載linux上的文件。這里演示一下在SecureCRT中向linux上傳和下載文件。 1、前言 需要上傳或者下載,需要使用rz和sz命令。如果linux上沒(méi)有這兩個(gè)命令工具,則需要先安裝(可以使用yum安裝

    2024年02月04日
    瀏覽(25)
  • MacBook 往服務(wù)器上傳、下載文件的幾種操作

    MacBook 往服務(wù)器上傳、下載文件的幾種操作

    往服務(wù)器傳文件、下載文件有很多種方法,可以使用scp、rsync或者rs/sz MacBook上的rz和sz 配置起來(lái)比較麻煩 這里就不說(shuō)了 另外 研發(fā)和測(cè)試同學(xué)可能對(duì)于scp命令和rsync命令并不了解 這里也不說(shuō)了 這里直說(shuō)兩種圖形化界面的工具 通過(guò)jumpserver登錄服務(wù)器后 可以簡(jiǎn)單快速實(shí)現(xiàn)上傳和

    2024年02月16日
    瀏覽(27)
  • 服務(wù)器文件上傳后,客戶端下載-webscoket一對(duì)一

    主要端末:小程序 云服務(wù)器 客戶端A 客戶端B 客戶端C 流程: 1.小程序用戶將文件通過(guò)小程序上傳至云服務(wù)器,同時(shí)發(fā)送一個(gè)websocket,內(nèi)部端口 2.云服務(wù)器與客戶端ABC建立webscoket連接 3.當(dāng)小程序用戶需要上傳到指定的客戶端A電腦上的時(shí)候,我們通過(guò)webscoket只針對(duì)客戶端A發(fā)送指

    2024年02月14日
    瀏覽(25)
  • 三分鐘用Golang搭建一個(gè)HTTP文件上傳下載服務(wù)器

    三分鐘用Golang搭建一個(gè)HTTP文件上傳下載服務(wù)器

    簡(jiǎn)單需要一個(gè)文件服務(wù)器來(lái)傳遞數(shù)據(jù),只要兩個(gè)功能,一個(gè)上傳接口,一個(gè)下載接口。 選用go http模塊實(shí)現(xiàn),比nginx、ftp等更方便快捷。 上傳接口\\\"/v1/file_upload/\\\" 上傳接口增加簡(jiǎn)單BasicAuth鑒權(quán) 上傳成功返回下載URL json格式返回 只想文件上傳服務(wù)器測(cè)試接口,以下電梯直達(dá)即可

    2024年02月11日
    瀏覽(24)
  • scp命令-遠(yuǎn)程服務(wù)器與本地之間的文件上傳與下載操作

    scp命令在linux中,比較方便。下面是例子。 -p -- ssh的端口,不寫的話默認(rèn)就是22。 /Users/zangcc/Desktop/hello.zip -- 本地的桌面文件hello.zip。 root@服務(wù)器ip:/root/tools -- 上傳到遠(yuǎn)程服務(wù)器的/root/tools下。 通俗的講:將本地桌面的hello.zip上傳到服務(wù)器的/root/tools目錄。 -p -- ssh的端口,不

    2024年02月13日
    瀏覽(26)
  • [Python http.server] 搭建http服務(wù)器用于下載/上傳文件

    [Python http.server] 搭建http服務(wù)器用于下載/上傳文件

    動(dòng)機(jī): 筆者需測(cè)試bs架構(gòu)下的文件上傳與下載性能,故想通過(guò)Python搭建http服務(wù)器并實(shí)現(xiàn)客戶端與服務(wù)器之間的文件上傳和下載需求 難點(diǎn): 這應(yīng)該是很基礎(chǔ)的東西,不過(guò)筆者之前未接觸過(guò)http編程,謹(jǐn)在此記錄下學(xué)習(xí)的過(guò)程,可能不是最優(yōu)解 方法: 在服務(wù)器端部署html頁(yè)面,并

    2024年02月11日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包