成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

7.2、使用基于 Servlet 3.0 的文件上傳

KevinYan / 667人閱讀

摘要:本文示例見(jiàn)這個(gè)項(xiàng)目的分支下的項(xiàng)目這個(gè)項(xiàng)目是為本文多帶帶建立的。的內(nèi)置支持用于處理應(yīng)用程序中的文件上傳。提供了一個(gè)的實(shí)現(xiàn),使用了的和一些其他的東西,用于對(duì)的請(qǐng)求的解析。首先,創(chuàng)建一個(gè)帶有的表單,這樣用戶就可以通過(guò)這個(gè)表單上傳文件了。

??本文示例見(jiàn)這個(gè)項(xiàng)目的 upload 分支下的項(xiàng)目(這個(gè)項(xiàng)目是為本文多帶帶建立的)。

??WARNING:本文中有一部分直接把英文原文搬過(guò)來(lái)了,我的翻譯能力實(shí)在有限,湊合看吧。

??Spring 的內(nèi)置 multipart 支持用于處理 Web 應(yīng)用程序中的文件上傳。你可以通過(guò)使用插件化的MultipartResolver對(duì)象來(lái)啟用 multipart 支持,它定義在包org.springframework.web.multipart中。Spring 提供了一個(gè)MultipartResolver的實(shí)現(xiàn),使用了 Apache 的 Commons FileUpload 和一些其他的東西,用于對(duì) Servlet 3.0 的 multipart 請(qǐng)求的解析。

??默認(rèn)地,Spring 不進(jìn)行 multipart 處理,因?yàn)楹芏嚅_發(fā)者想要自己處理。你可以通過(guò)在 Web 應(yīng)用程序上下文中添加一個(gè) multipart 解析器來(lái)啟用 Spring 的 multipart 處理。每一個(gè)請(qǐng)求都要被檢查,看看是否包含一個(gè) multipart。如果沒(méi)有發(fā)現(xiàn) multipart,請(qǐng)求就正常繼續(xù)啦;如果有的話,你在上下文中聲明的MultipartResolver就會(huì)開始工作啦。之后嘞,你就可以像訪問(wèn)其他請(qǐng)求屬性那樣訪問(wèn) multipart 屬性啦。

和Servlet 3.0一起使用MultipartResolver

??為了使用基于 multipart 解析(parse)的 Servlet 3.0,你可以在DispatcherServlet上加個(gè)標(biāo)記,這個(gè)標(biāo)記可以是 web.xml 中的一個(gè)“multipart-config”片段,也可以是一個(gè)在編程 Servlet注冊(cè)中的 MultipartConfigElement(or with a javax.servlet.MultipartConfigElement in programmatic Servlet registration),or in case of a custom Servlet class possibly with a javax.servlet.annotation.MultipartConfig annotation on your Servlet class。配置設(shè)置如文件最大長(zhǎng)度或者存儲(chǔ)路徑需要應(yīng)用在 Serlvet 注冊(cè)級(jí)別,因?yàn)?Servlet 3.0 不允許從MultipartResolver完成這些設(shè)置。

??一旦你通過(guò)上面的任意一種方式啟用了 Servlet 3.0 的 multipart解析,你需要添加StandardServletMultipartResolver`到你的 Spring 配置中:



配置 web.xml 文件

??這里使用。如下:

......

    Spring MVC 核心 Servlet
    dispatcher
    org.springframework.web.servlet.DispatcherServlet
    
        contextConfigLocation
        
    
    
        52428800
        52428800
        0
    
    1

......
在表單中處理文件上傳

??在MultipartResolver完成自己的工作之后,你就可以像處理其他請(qǐng)求那樣處理當(dāng)前請(qǐng)求了。首先,創(chuàng)建一個(gè)帶有的表單,這樣用戶就可以通過(guò)這個(gè)表單上傳文件了。為表單添加編碼屬性 (enctype="multipart/form-data") 來(lái)讓瀏覽器直到把表單編碼為 multipart 請(qǐng)求:


    
        Upload a file please
    
    
        

Please upload a file

配置處理上傳文件的控制器

??在使用 Servlet 3.0 的 multipart 解析時(shí),你也可以使用javax.servlet.http.Part來(lái)作為方法參數(shù):

@Controller
public class FileUploadController 
{
    @PostMapping("/form")
    public String handleFormUpload(
            @RequestParam("name") String name, 
            @RequestParam("file") Part file) 
    {
        InputStream inputStream = file.getInputStream();
        // store bytes from uploaded file somewhere
        return "redirect:uploadSuccess";
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/65259.html

相關(guān)文章

  • Spring之旅第十站:MVC配置、上傳文件、異常處理、跨重定向請(qǐng)求、為控制器添加通知

    摘要:依賴于對(duì)請(qǐng)求的支持。使用解析兼容的沒(méi)有構(gòu)造器參數(shù),也沒(méi)有要設(shè)置的參數(shù),這樣,在應(yīng)用上下文中,將其聲明為就會(huì)非常簡(jiǎn)單。默認(rèn)是沒(méi)有限制的整個(gè)請(qǐng)求的容量。 Spring MVC 高級(jí)的技術(shù) 本章內(nèi)容: Spring MVC配置的替代方案 處理文件上傳 在控制器中處理異常 使用flash屬性 稍等還沒(méi)結(jié)束 說(shuō)明 如果你有幸能看到。后面的章節(jié)暫時(shí)不更新了,改變學(xué)習(xí)方式了。重要理解思想,這本書...

    leanote 評(píng)論0 收藏0
  • Servlet 3.1 Async IO分析

    摘要:于是提供了機(jī)制,使得從中讀往里寫變成異步動(dòng)作。這是因?yàn)榭蛻舳说臄?shù)據(jù)推送速度太慢了,容器先將收回,當(dāng)容器發(fā)現(xiàn)可以讀取到新數(shù)據(jù)的時(shí)候,再分配一個(gè)去讀,如此循環(huán)直到全部讀完為止。注意和不能同時(shí)使用。 Github地址 相關(guān)系列文章: Servlet 3.0 異步處理詳解 Spring MVC異步處理的幾種方式 Servlet Async Processing提供了一種異步請(qǐng)求處理的手段(...

    n7then 評(píng)論0 收藏0
  • springboot2.x文件上傳

    摘要:項(xiàng)目拋出了個(gè)異常,。所以我們需要添加個(gè)轉(zhuǎn)換器類這樣就能夠識(shí)別了總結(jié)感覺(jué)把文件上傳所能遇到的坑全踩了個(gè)變,心累。 pom包的配置 org.springframework.boot spring-boot-starter-web 啟動(dòng)項(xiàng)類修改 /** * 防止文件大于10M時(shí)Tomcat連接重置 * * @return */ @Bean public T...

    ChristmasBoy 評(píng)論0 收藏0
  • Spring新功能

    摘要:新特性重要功能升級(jí)為了解決各種環(huán)境下如開發(fā)測(cè)試和生產(chǎn)選擇不同配置的問(wèn)題,引入了環(huán)境功能。這個(gè)消息模塊支持的功能,同時(shí)提供了基于模板的方式發(fā)布消息是第一批支持特性的框架,比如它所支持的表達(dá)式。 Spring 3.1新特性 重要功能升級(jí) 為了解決各種環(huán)境下(如開發(fā)、測(cè)試和生產(chǎn))選擇不同配置的問(wèn)題,Spring 3.1引入了環(huán)境profile功能。借助于profile,就能根據(jù)應(yīng)用部署在什...

    baiy 評(píng)論0 收藏0
  • Spring MVC概念

    摘要:在中,就是前端控制器的任務(wù)是將請(qǐng)求發(fā)送給控制器。處理器映射會(huì)根據(jù)請(qǐng)求所攜帶的信息來(lái)進(jìn)行決策一旦選擇了合適的控制器,會(huì)將請(qǐng)求發(fā)送給選中的控制器。這些信息被稱為模型。因此無(wú)需在配置類中顯式聲明任何的控制器具體來(lái)講是試圖解析器。 Spring MVC基于模型-視圖-控制器(Model-View-Controller,MVC)模式實(shí)現(xiàn),能夠構(gòu)建像Spring框架那樣靈活和松耦合的Web應(yīng)用程序...

    lindroid 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<