1. 程式人生 > >Servlet3.0中的檔案上傳技術

Servlet3.0中的檔案上傳技術

1.新增對檔案上傳的支援
1)@MultipartConfig
表示Servlet接收multipart/form-data 請求

新增Part類 獲取檔案上傳資料
public Collection getParts()
public Part getPart(String name)
通過part.write(filename) 進行檔案上傳
通過Content-Disposition 獲得真實檔名

可以通過getParameter獲得普通域資料
但是getParameter位於getPart操作之前

2.具體操作:
1)瀏覽器端:
1.method=post
2.encType=”multipart/form-data”
3.使用

2)伺服器端:
servlet3.0完成。
1.要在servlet上添加註解@MultipartConfig
表示Servlet接收multipart/form-data 請求
2.在servlet中要想得到上傳資訊,通過request物件獲取一個Part物件。
Part part=request.getPart();
part.write(String filename);
問題:
1.關於上傳檔案中文名稱亂碼問題
因為上傳是post請求,直接使用post亂碼解決方案就可以 request.setCharacterEncoding(“utf-8”);
2.關於獲取上傳檔名稱
通過Part獲取一個header
String cd = part.getHeader(“Content-Disposition”);
在這個header中包含了上傳檔名稱,直接截取出來就可以。
String filename = cd.substring(cd.lastIndexOf(“\”) + 1,cd.length() - 1);
3.如果多檔案上傳怎樣處理?
request.getParts();

package cn.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import
java.io.IOException; @WebServlet("/upload") //表示Servlet接收multipart/form-data 請求 @MultipartConfig public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 解決解決亂碼問題 response.setCharacterEncoding("utf-8"); //新增part類獲取上傳資料 Part part = request.getPart("f");//得到檔案資訊 //多檔案上傳有一個getParts // request.getParts(); //通過一個part獲取一個header String cd = part.getHeader("Content-Disposition"); //得到上傳檔名稱 String filename = cd.substring(cd.lastIndexOf("//")+1,cd.length()-1); System.out.println(filename); // 完成檔案上傳 part.write("d:/a.txt"+filename); }}

相關推薦

Servlet3.0學習總結(三)——基於Servlet3.0檔案

在Servlet2.5中,我們要實現檔案上傳功能時,一般都需要藉助第三方開源元件,例如Apache的commons-fileupload元件,在Servlet3.0中提供了對檔案上傳的原生支援,我們不需要藉助任何第三方上傳元件,直接使用Servlet3.0提供的API就能夠實現檔案上傳功能了。

servlet3.0實現檔案

servlet3.0實現檔案上傳功能 必須使用tomcat7以上的技術才能支援servlet3.0 servlet3.0 比 servlet2.5 多提供了三個新特性:   註解開發:方便   檔案上傳:有些api不是特別全   非同步請求:基本不用,使用ajax替代 檔案上傳技術: 1

基於servlet3.0檔案

jsp頁面關鍵程式碼 <body>     <form action="uploadServlet" method="post" enctype="multipart/form-data">   <input type="file" n

Servlet3.0檔案技術

1.新增對檔案上傳的支援 1)@MultipartConfig 表示Servlet接收multipart/form-data 請求 新增Part類 獲取檔案上傳資料 public Collection getParts() public Part ge

servlet3.0文件

servlet3.0文件上傳1.瀏覽器端:選擇圖片、提交表單,同時將圖片發送給服務器<form action=”” method=”post” enctype=”multipart/form-data”><input type=”file” name=”image”><inpu

linux檔案下載

windows篇 linux檔案下載到windows   sz命令   登入到linux伺服器使用 sz log.log 命令,彈出對話方塊選擇下載檔案的目錄,點選確定即可。   windows檔案上傳到linux   rz命令   登入到linux伺服器使用rz命令,彈出檔

Spring MVC檔案和下載

檔案上傳 檔案上傳需將表格的提交方式設為"POST",並且將enctype設為"multipart/form-data",以二進位制的方式提交資料。 spring mvc中可通過MultipartResolver監聽每個請求,如有上傳的檔案,則把請求封裝為MultipartH

extjs列表檔案與下載(帶有重新命名操作)

下面是extjs列表中檔案上傳與下載: 如圖: 一、上傳 上傳按鈕: { xtype: 'button', width: 60, margin: '0 20', text: ' 上 傳 ', handler: 'onUploadClick' }] 上傳按

SpringBoot 2.0 | SpringBoot 檔案下載

環境與配置 新增 maven 依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta

Android Retrofit2.0實現檔案和下載

這篇主要介紹retrofit框架的上傳檔案到伺服器和從伺服器下載功能的實現 上傳檔案到伺服器 首先 retrofit2.0之前上傳檔案到伺服器需要一個叫TypedFile這個類,但是在2.0版本,這個類被取消了,因為2.0以後,retrofit內部集成了okhttp

ASP.NET檔案與下載

檔案下載      ASP.NET依託.net framework類庫,封裝了大量的功能,使得上傳檔案非常簡單,主要有以下三種基本方法。 方法一:用Web控制元件FileUpload,上傳到網站根目錄。 Test.aspx關鍵程式碼: <formid="fo

Vuetify檔案元件

1.示例: 1.1.單圖片上傳: <v-upload v-model="brand.image" url="/item/upload" :multiple="false" :p

表單檔案和下載

檔案上傳和下載的實質:檔案拷貝 檔案上傳:從本地拷貝到伺服器磁碟上   客戶端需要編寫檔案上傳表單---->服務端需要編寫程式碼接受上傳的檔案 檔案下載:從伺服器磁碟上拷貝到本地磁碟   需要編寫服務端的程式碼,客戶端的下載的工作瀏覽器核心解決的

html5大檔案技術(四)

五、MD5檔案校驗 基於js-spark-md5前端js類庫,可快速獲取檔案Md5值,點選下載:spark-md5.js 一個分片讀取大檔案MD5值得範例(引用) <body> <div> <div

PHP檔案的功能模組實現

最近專案中PHP使用的比較多,對於一個前端的使用者,對其中的一些知識點記錄下來。今天講一下,檔案上傳的功能實現的一些知識。之前在專案中使用的nodejs實現過類似的功能,用PHP在做的時候,發現差不多大同小異。背後的邏輯差不多都是一樣的。 1.前端頁面要做的是,首先是提交方

Linux檔案rz使用

安裝: sudo yum install -y lrzsz  輸入: rz出現 檔案選擇框, 注意會上傳到當前的目錄 用法說明:sz命令傳送檔案到本地:# sz filenamerz命令本地上傳檔案到伺服器:# rz執行該命令後,在彈出框中選擇要上傳的檔案即可。說明:開

Spring MVC 檔案/刪除 刪除空資料夾方法 + 下載方法

package com.pqs.common.tools; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExce

fileupload和cos檔案技術區別

jsp檔案上傳大多采用採用開源專案來簡化處理,這裡列出常用的兩個jar包的實現,並進行比較,說明他們的優缺點和應該注意的問題。 Commons FileUpload提供三種檔案上傳處理方式,DiskFileUpload、ServletFileUpload和

SpringMVC檔案,新增enctype="multipart/form-data"後表單其他屬性為空

最近在做一個小型專案,用SpringMVC+Spring+Mybatis做的,開始沒有做圖片上傳,也沒有用Spring MVC做過,以前是用Struts2搞定的,所以很自然的, 在設定form表單上的屬性就用了enctype=”multipart/form-da

C# 之 FTP伺服器檔案與下載(二)

        通過上一篇部落格《C# 之 FTP伺服器中檔案上傳與下載(一)》,我們已經建立好了一個FTP伺服器,並且該伺服器需要使用者名稱和密碼的驗證。今天我們來實現檔案的上傳。 首先,我們前臺需要一個FileUpload控制元件和一個Button控制元件 <