//**文件上传** form表单提交必须指定Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型"multipart/form-data"
//1.创建磁盘文件项目工厂
DiskFileItemFactory df=new DiskFileItemFactory);
//2.设置上传的内存缓存区大小 4096=4KB
df.setSizeThreshold4096);
//3.实列化Servlet文件上传对象 把'磁盘文件项目工厂'放入构造中(把缓存区大小放进去)
ServletFileUpload upload=new ServletFileUploaddf);
try {
//4.得到所有的上传表单对象集合 返回List<FileItem> 相当于每一个表单元素都是一个FileItem
List<FileItem> itemList=upload.parseRequestrequest);
//6.获取文件夹的绝对路径
String path=request.getSession).getServletContext).getRealPath"\\upload");
//5.遍历表单对象集合
String ntid="";
String ntitle="";
String nauthor="";
String nsummary="";
String ncontent="";
String file="";
String name="";
forFileItem item:itemList){
// System.out.println"InMemory:"+item.isInMemory));判断FileItem对象是否是一个简单的表单字段
//取出用户提交内容
ifitem.isFormField)){//判断 item是否是简单的表单字段
ifitem.getFieldName).equals"ntid")){
ntid=item.getString"utf-8");
}else ifitem.getFieldName).equals"ntitle")){
ntitle=item.getString"utf-8");
}else ifitem.getFieldName).equals"nauthor")){
nauthor=item.getString"utf-8");
}else ifitem.getFieldName).equals"nsummary")){
nsummary=item.getString"utf-8");
}else ifitem.getFieldName).equals"ncontent")){
file=item.getString"utf-8");
}
}else{
ifitem.getFieldName).equals"file")){
//得到用户上传文件的路径
String fileName=item.getName);
//截取最后文件的名字
int index=fileName.lastIndexOf"\\");
name=fileName.substringindex+1);
try {
//把文件写入服务器文件夹
item.writenew Filepath,name));
} catch Exception e) {
e.printStackTrace);
}
}
}
}
} catch FileUploadException e) {
/* form表单中中没有设置
encType="multipart/form-data" method="post"
会造成此异常(FileUploadBase$InvalidContentTypeException)
*/
e.printStackTrace);
}