文件上传失败
「已注销」 2020-12-01 10:06:36 <body>
<form action="UploadServlet2" method="post" enctype="multipart/form.data ">
学号:<input name="sno" /><br/>
姓名:<input name="sname" /><br/>
上传照片:<input type="file" name ="spicture"/>
<br/>
<input type="submit" value="上传">
</form>
</body>
这是文件上传的表格
然后就是处理数据的Servlet
package org.student.servlet;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@WebServlet("/UploadServlet")
public class UploadServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
public UploadServlet2() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
//上传
try {
boolean isMultipart= ServletFileUpload.isMultipartContent(request);
if(isMultipart) {//判断form是否有MUTIPART
FileItemFactory factory =new DiskFileItemFactory();
ServletFileUpload upload =new ServletFileUpload(factory);
List<FileItem> items= upload.parseRequest(request);//form的所有请求段,保存在items集合中
Iterator<FileItem> iter=items.iterator();
while(iter.hasNext()) {
FileItem item = iter.next();
String itemname=item.getFieldName();
int sno=-1;
String sname=null;
if(item.isFormField()) {
if(itemname.equals("sno")) {
sno=Integer.parseInt(item.getString("UTF-8"));
}else if(itemname.equals("sname")) {
sname=item.getString("UTF-8");
}else {
System.out.println("其他字段");
}
}else {
//文件上传
//文件名
String filename=item.getName();
//获取文件内容并上传
//指定文件上传位置,获取服务器路径
String path=request.getSession().getServletContext().getRealPath("upload");
File file=new File(path,filename);
item.write(file);
System.out.println(filename+"上传成功");
return;
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}//解析form中的
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
这个就是,不报错,但是我预计接收上传文件的文件夹里面就是空的。。。。。。对,就是空的,太难了,也不会调试断点。希望有大佬帮我运行康康!!在此拜谢~