ServletFileUpload使用实例(Java Servlet文件上传)
生活随笔
收集整理的這篇文章主要介紹了
ServletFileUpload使用实例(Java Servlet文件上传)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//**文件上傳** form表單提交必須指定Enctype 屬性指定將數據回發到服務器時瀏覽器使用的編碼類型"multipart/form-data"
//1.創建磁盤文件項目工廠
DiskFileItemFactory df=new DiskFileItemFactory();
//2.設置上傳的內存緩存區大小 4096=4KB
df.setSizeThreshold(4096);
//3.實列化Servlet文件上傳對象 把'磁盤文件項目工廠'放入構造中(把緩存區大小放進去)
ServletFileUpload upload=new ServletFileUpload(df);
try {
//4.得到所有的上傳表單對象集合 返回List<FileItem> 相當于每一個表單元素都是一個FileItem
List<FileItem> itemList=upload.parseRequest(request);
//6.獲取文件夾的絕對路徑
String path=request.getSession().getServletContext().getRealPath("\\upload");
//5.遍歷表單對象集合
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對象是否是一個簡單的表單字段
//取出用戶提交內容
if(item.isFormField()){//判斷 item是否是簡單的表單字段
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")){
//得到用戶上傳文件的路徑
String fileName=item.getName();
//截取最后文件的名字
int index=fileName.lastIndexOf("\\");
name=fileName.substring(index+1);
try {
//把文件寫入服務器文件夾
item.write(new File(path,name));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
} catch (FileUploadException e) {
/* form表單中中沒有設置
encType="multipart/form-data" method="post"
會造成此異常(FileUploadBase$InvalidContentTypeException)
*/
e.printStackTrace();
}
總結
以上是生活随笔為你收集整理的ServletFileUpload使用实例(Java Servlet文件上传)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 唢呐是谁唱的啊?
- 下一篇: 悍马加长版多少钱啊?