代碼
DiskFileItemFactory diskFileItemFactory = new DiskF ileItem正在講話就愛(ài)玩征途
// 2、創(chuàng)建一個(gè)核心的解析類
ServletFileUpload fileUpload = new ServletFileUpload( diskFileItemFactory);
fileUpload. setHeaderEncoding("UTF-8");
// 3、利用核心類解析Request,解析后會(huì)得到多個(gè)部分,返回一個(gè)List集合,裝的是每個(gè)部分的內(nèi)容
List<FileItem> list = fileUpload. parseRequest(request);
// 4、 遍歷List集合,會(huì)得到代表每個(gè)部分的文件項(xiàng)的對(duì)象,根據(jù)文件項(xiàng)判斷是否是文件上傳項(xiàng)
for(FileItem fileItem : list) {
/ /判斷這個(gè)文件項(xiàng)是否是普通項(xiàng),還是文件上傳項(xiàng)
if(fileItem. isFormField()) {
/ /普通項(xiàng)
/ /接收普通項(xiàng)的值
String name = fileItem. getF ieldName();/ /獲取普通項(xiàng)的名稱
/ /獲取普通項(xiàng)的值
String value = fileItem. getString("UTF-8");
System. out . println(name + ":" + value);
}else {
//文件上傳項(xiàng)
/ /獲取文件上傳項(xiàng)的文件的名稱
String filename = fileItem. getName();
/ /獲取文件上傳項(xiàng)的文件的數(shù)據(jù)
InputStream is = fileItem. getInputStream();
/ /獲取文件上傳的路徑:磁盤(pán)絕對(duì)路徑
String realPath = getServletContext(). getRealPath("/upload");
//創(chuàng)建一個(gè)輸出流, 寫(xiě)入到設(shè)置的路徑中
OutputStream os = new FileOutputStream(realPath + "/" + filename);
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e. printStackTrace();
}