ServletFileUpload使用实例(Java Servlet文件上传)
生活随笔
收集整理的這篇文章主要介紹了
ServletFileUpload使用实例(Java Servlet文件上传)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//**文件上傳** form表單提交必須指定Enctype 屬性指定將數(shù)據(jù)回發(fā)到服務(wù)器時(shí)瀏覽器使用的編碼類(lèi)型"multipart/form-data"
//1.創(chuàng)建磁盤(pán)文件項(xiàng)目工廠
DiskFileItemFactory df=new DiskFileItemFactory();
//2.設(shè)置上傳的內(nèi)存緩存區(qū)大小 4096=4KB
df.setSizeThreshold(4096);
//3.實(shí)列化Servlet文件上傳對(duì)象 把'磁盤(pán)文件項(xiàng)目工廠'放入構(gòu)造中(把緩存區(qū)大小放進(jìn)去)
ServletFileUpload upload=new ServletFileUpload(df);
try {
//4.得到所有的上傳表單對(duì)象集合 返回List<FileItem> 相當(dāng)于每一個(gè)表單元素都是一個(gè)FileItem
List<FileItem> itemList=upload.parseRequest(request);
//6.獲取文件夾的絕對(duì)路徑
String path=request.getSession().getServletContext().getRealPath("\\upload");
//5.遍歷表單對(duì)象集合
String ntid="";
String ntitle="";
String nauthor="";
String nsummary="";
String ncontent="";
String file="";
String name="";
for(FileItem item:itemList){
// System.out.println("InMemory:"+item.isInMemory());判斷FileItem對(duì)象是否是一個(gè)簡(jiǎn)單的表單字段
//取出用戶(hù)提交內(nèi)容
if(item.isFormField()){//判斷 item是否是簡(jiǎn)單的表單字段
if(item.getFieldName().equals("ntid")){
ntid=item.getString("utf-8");
}else if(item.getFieldName().equals("ntitle")){
ntitle=item.getString("utf-8");
}else if(item.getFieldName().equals("nauthor")){
nauthor=item.getString("utf-8");
}else if(item.getFieldName().equals("nsummary")){
nsummary=item.getString("utf-8");
}else if(item.getFieldName().equals("ncontent")){
file=item.getString("utf-8");
}
}else{
if(item.getFieldName().equals("file")){
//得到用戶(hù)上傳文件的路徑
String fileName=item.getName();
//截取最后文件的名字
int index=fileName.lastIndexOf("\\");
name=fileName.substring(index+1);
try {
//把文件寫(xiě)入服務(wù)器文件夾
item.write(new File(path,name));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
} catch (FileUploadException e) {
/* form表單中中沒(méi)有設(shè)置
encType="multipart/form-data" method="post"
會(huì)造成此異常(FileUploadBase$InvalidContentTypeException)
*/
e.printStackTrace();
}
總結(jié)
以上是生活随笔為你收集整理的ServletFileUpload使用实例(Java Servlet文件上传)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 唢呐是谁唱的啊?
- 下一篇: Quartz Cron 表达式