A. Java中上傳文件和表單數據提交如何質蕕
//1.form表單
//註:上傳文件的表單,需要將form標簽設置enctype="multipart/form-data"屬性,意思是將Content-Type設置成multipart/form-data
<form action="xxx" method="post" enctype="multipart/form-data">
<input type="text" name="name" id="id1" /> <br />
<input type="password" name="password" /> <br />
<input type="file" name="file" value="選擇文件"/> <input id="submit_form" type="submit" value="提交"/>
</form>
//2.servlet實現文件接收的功能
boolean isMultipart = ServletFileUpload.isMultipartContent(request);//判斷是否是表單文件類型
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
List items = sfu.parseRequest(request);//從request得到所有上傳域的列表
for(Iterator iter = items.iterator();iter.hasNext();){
FileItem fileitem =(FileItem) iter.next(); if(!fileitem.isFormField()&&fileitem!=null){
//判讀不是普通表單域即是file
System.out.println("name:"+fileitem.getName());
}
}
3.擴展一下springboot
@RequestMapping("/xxx")
@ResponseBody
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(
file.getOriginalFilename())));
System.out.println(file.getName());
out.write(file.getBytes());
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return "上傳失敗," + e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return "上傳失敗," + e.getMessage();
}
return "上傳成功";
} else {
return "上傳失敗,因為文件是空的.";
}
}
B. html上傳表單屬性
表單的文件上傳元素默認樣式確實是:
只是這樣並不美觀,於是常見做法是創建一個文本框和一個按鈕來配合文件上傳元素:
核心就是將上傳元素的透明度設置為0,即完全透明,然後絕對定位到按鈕上上面,這樣用戶點擊按鈕時,實際是點擊到上傳元素。然後添加js,將上傳元素的value值賦給文本框的value值,實現在文本框中顯示文件元素的value屬性值。
該上傳元素的onchange事件監聽函數為:onchange="document.getElementById('textfield').value=this.value"
C. <input type="file">怎麼樣實現上傳
1、首先,你要對form表單設置下相關屬性,增加如下屬性:
enctype="multipart/form-data" action="接收上傳文件的後台處理URL" method="post"
<formenctype="multipart/form-data"action=""method="post">
<inputtype="file"id="choosefile"/>
<inputtype="file"id="f"style="display:none;"/>
<inputtype="submit"value="上傳文件"id="submitBtn"/>
</form>
2、編寫接收客戶端文件上傳的後台代碼,即上面提到的「接收上傳文件的後台處理URL」的相關代碼。
3、當點擊上面增加的「上傳文件」按鈕後,將調用action對應的處理方法進行文件上傳
因為不知道你是使用什麼語句作為後台程序的運行語句,這里沒法給出示例。像很多都有現成的插件。
D. java spring mvc 客戶端上傳文件到伺服器端
Web文件上傳採用POST的方式,與POST提交表單不同的是,上傳文件需要設置FORM的enctype屬性為multipart/form-data.由於上傳的文件會比較大,因此需要設置該參數指定瀏覽器使用二進制上傳。如果不設置,enctype屬性默認為application/x-www-form-urlencoded,使用瀏覽器將使用ASCII向伺服器發送數據,導雀賀致發送文件失敗。
上傳文件要使用冊則文頃姿派件域(<input type='file'/>,並把FORM的Enctype設置為multipart/form-data.
E. Enscape如何上傳web
你好,Enscape上傳web有兩個操作:
在網頁中添加上傳條目,在Servlet中讀取上傳文件的數據並保存到本地硬碟。
在Web端上傳文件。在網頁中添加上傳條目:在設置文件上傳條目時,需要注意:
1、必須設置輸入條目的name屬性,否則瀏覽器不會發送上傳文件的數據。
2、表單的enctype屬性必須設置為multipart/form-data。設置該值後,瀏覽器上傳文件時,會將文件數據附加到http請求消息體中,並使用MIME協議描述上傳的文件,以方便接收方對上傳的數據進行分析處理。
3、表單提交方式為post。
F. JAVA WEB文件上傳步驟
JAVA WEB文件上傳步驟如下:
實現 Web 開發中的文件上傳功能,兩個操作:在 Web 頁面添加上傳輸入項,在 Servlet 中讀取上傳文件的數據並保存在本地硬碟中。
1、Web 端上傳文件。在 Web 頁面中添加上傳輸入項:<input type="file"> 設置文件上傳輸入項時應注意:(1) 必須設置 input 輸入項的 name 屬性,否則瀏覽器將不會發送上傳文件的數據。(2) 必須把 form 的 enctype 屬性設為 multipart/form-data,設置該值後,瀏覽器在上傳文件時,將把文件數據附帶在 http 請求消息體中,並使用 MIME 協議對上傳文件進行描述,以方便接收方對上傳數據進行解析和處理。(3) 表單提交的方式要是 post
2、伺服器端獲取文件。如果提交表單的類型為 multipart/form-data 時,就不能採用傳統方式獲取數據。因為當表單類型為 multipart/form-data 時,瀏覽器會將數據以 MIME 協議的形式進行描述。如果想在伺服器端獲取數據,那麼我們必須採用獲取請求消息輸入流的方式來獲取數據。
3、Apache-Commons-fileupload。為了方便用戶處理上傳數據,Apache 提供了一個用來處理表單文件上傳的開源組建。使用 Commons-fileupload 需要 Commons-io 包的支持。
4、fileuplpad 組建工作流程
(1)客戶端將數據封裝在 request 對象中。
(2)伺服器端獲取到 request 對象。
(3)創建解析器工廠 DiskFileItemFactory 。
(4)創建解析器,將解析器工廠放入解析器構造函數中。之後解析器會對 request 進行解析。
(5)解析器會將每個表單項封裝為各自對應的 FileItem。
(6)判斷代表每個表單項的 FileItem 是否為普通表單項 isFormField,返回 true 為普通表單項。
(7)如果是普通表單項,通過 getFieldName 獲取表單項名,getString 獲得表單項值。
(8)如果 isFormField 返回 false 那麼是用戶要上傳的數據,可以通過 getInputStream 獲取上傳文件的數據。通過getName 可以獲取上傳的文件名。