文件上传form表单必须有multpart属性和post
<form action="FileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="file1"/>
<input type="submit" value="上传"/>
</form>
这个是servlet里面有注释
// 开始上传upload
boolean isMultpart = ServletFileUpload.isMultipartContent(request);//判断上传的form是否有MultiPart属性multipart
if(true) {//判断前端form是否有multipart属性
try {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);//上传需要ServletFileUpload对象而需要上一行的支持
List<FileItem> items = upload.parseRequest(request);
Iterator<FileItem> iter = items.iterator();
String videoPath= "";
String videoImgPath="";
Boolean bool = true;
while(iter.hasNext()) {
FileItem item = iter.next();
String itemName = item.getFieldName();
//文字字段或文件字段
if(item.isFormField()) { // 文字字段
if(itemName.equals("videoType")) {
System.out.println(item.getString("utf-8"));
videoType = item.getString("utf-8");
}
if(itemName.equals("videoName")) {
System.out.println(item.getString("utf-8"));
videoName = item.getString("utf-8");
}
//只要有一个为空则不上传数据库
if( item.getString("utf-8").equals("")){
bool = false;
}
}else{ //文件字段
//文件字段
// 获取文件名
String fileName = item.getName();
// 获取指定的文件名称
String suffix = fileName.substring(fileName.indexOf(".")+1,fileName.length());
if(suffix.equals("jpg") || suffix.equals("png") || suffix.equals("mp4")){
//获取当前绝对路径
String directoryName = "";
if(suffix.equals("jpg") || suffix.equals("png") ){
directoryName = "UploadImg";
videoImgPath = fileName;
}else if(suffix.equals("mp4")){
directoryName = "UploadVideo";
videoPath = fileName;
}else{
bool = false;
}
String path = request.getSession().getServletContext().getRealPath(directoryName);
//打印当前路径
System.out.println(path);
//new 文件类
File file = new File(path,fileName);
try {
item.write(file);
// 文件上传成功
System.out.println("文件上传成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭流
}
}else{
out.print("文件明不正确");
bool = false;
}
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}吧数据传入fileItem的集合里
}else {
System.out.println("提交表单里没有multipart属性");
}
还有必须有
commons-io-2.4.jar
commons-fileupload-1.3.1.jar
两个jar包