摘要:技術現在提供開箱即用的上傳文件方法,所以任何實現規范的容器都能通過對象解析請求和生成有效的附件。用來在處理時存儲臨時文件或者是文件大小超過設置的值。默認是允許上傳的最大文件大小,單位是。如果上傳的文件超過限制,容器將拋出異常。
支持文件上傳是web程序最基本和常見的需求。在早期的servlet規范中,實現文件上傳需要使用第三方庫或者復雜的輸入處理。針對此問題,servlet現在以通用和可移植的方式幫助提供了一個可行的解決方案。servlet技術現在提供開箱即用的上傳文件方法,所以任何實現規范的web容器都能通過HttpServletRequest 對象解析multipart請求和生成有效的mime附件。
一個新的注解,javax.servlet.annotation.MultipartConfig,用來表明需要multipart/form-data類型請求的定義上。使用@MultipartConfig注解的servlet都可以通過調用 request.getPart(String name)或request.getParts()方法獲取一個給定的multipart/form-data請求中的Part構件。
@MultipartConfig注解提供下面這些可選的屬性:
location 操作系統上的一個絕對路徑。location屬性不支持基于web上下文的相對路徑。location用來在處理Part時存儲臨時文件或者是文件大小超過fileSizeThreshold設置的值。默認location是“”
fileSizeThreshold 存儲在硬盤上的臨時文件的大小。默認是0byte
MaxFileSize 允許上傳的最大文件大小,單位是byte。如果上傳的文件超過限制,web容器將拋出異常(IllegalStateException)。默認設置是不限制大小。
maxRequestSize 一個 multipart/form-data請求能攜帶的最大字節數。
例如,@MultiPartConfig可以如下構造:
@MultipartConfig(location="/tmp", fileSizeThreshold=1024*1024, maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
代替使用 @MultipartConfig注解在你的upload servlet中硬編碼這些屬性,需要在web.xml中作為一個子節點添加下面的節點:
getParts和getPart方法/tmp 20848820 418018841 1048576
servlet規范定義了HttpServletRequest的兩個附加方法:
Collection
Part getPart(String name)
request.getParts()方法返回所有Prat集合。如果你有超過一個文件類型的輸入,將返回多個Part對象。因為所有Part對象都被命名, getPart(String name)方法用來訪問特定的Part對象。另外,getParts()返回Iterable
javax.servlet.http.Part是簡單的,提供每個Part的自省方法。方法列表:
獲取Part的名稱、大小、類型等
查詢隨Part提交的Header信息
刪除一個Part
輸出Part到磁盤
例如,Part 接口提供write(String filename) 方法以特定名稱寫入到文件中。文件可以使用@MultipartConfig注解定義的location直接保存,在fileupload示例中,location是由表達中的屬性定義的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74230.html
摘要:前言由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 前言 由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導航哦~想要獲取最新原創的技術文章歡迎關注我的公眾號:Java3y Java3y文章目錄導航 Java基礎 泛型就這么簡單 注解就這么簡單 Druid數據庫連接池...
Java Servlet技術使用請求-響應編程模型提供動態的面向用戶的web應用程序。 這里將討論一下主題: 什么是Servlet? Servlet的生命周期 信息共享 創建并初始化一個Servlet 編寫Servlet方法 請求和響應過濾器 調用其他Web資源 訪問Web上下文 維持客戶端狀態 不可變Servlet(?) 使用Servlet技術上傳文件 異步請求處理 NIO 協議升級處理 m...
摘要:依賴于對請求的支持。使用解析兼容的沒有構造器參數,也沒有要設置的參數,這樣,在應用上下文中,將其聲明為就會非常簡單。默認是沒有限制的整個請求的容量。 Spring MVC 高級的技術 本章內容: Spring MVC配置的替代方案 處理文件上傳 在控制器中處理異常 使用flash屬性 稍等還沒結束 說明 如果你有幸能看到。后面的章節暫時不更新了,改變學習方式了。重要理解思想,這本書...
摘要:本文示例見這個項目的分支下的項目這個項目是為本文單獨建立的。的內置支持用于處理應用程序中的文件上傳。提供了一個的實現,使用了的和一些其他的東西,用于對的請求的解析。首先,創建一個帶有的表單,這樣用戶就可以通過這個表單上傳文件了。 ??本文示例見這個項目的 upload 分支下的項目(這個項目是為本文單獨建立的)。 ??WARNING:本文中有一部分直接把英文原文搬過來了,我的翻譯能力實...
摘要:一添加項目依賴二上傳上傳文件存儲目錄上傳配置上傳文件最大值檢測是否為多媒體上傳如果不是則停止表單必須包含配置上傳參數設置最大文件上傳值中文處理構造臨時路徑來存儲上傳的文件這個路徑相對當前應用的目錄如果目錄不存在則創建解析請求的內容 一、添加項目依賴(gradle) dependencies { compile group: javax.servlet, name: javax....
閱讀 2367·2021-11-22 14:56
閱讀 1175·2019-08-30 15:55
閱讀 3206·2019-08-29 13:29
閱讀 1354·2019-08-26 13:56
閱讀 3484·2019-08-26 13:37
閱讀 558·2019-08-26 13:33
閱讀 3349·2019-08-26 13:33
閱讀 2228·2019-08-26 13:33