package servlet02.controller;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
import javax.servlet.ServletException;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import com.sun.xml.internal.messaging.saaj.packaging.mime.Header;
import servlet02.Model.Worker;
import servlet02.service.impl.WorkerServiceImpl;
import servlet02.service.intf.WorkerService;
public class ServletAdd extends HttpServlet {
WorkerService workerService=new WorkerServiceImpl();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 定义一个HashMap,存放请求参数
HashMap<String, String> paramMap=new HashMap<String ,String>();
// -----上传头像并保存参数到hashMap
uploadHeader(request, paramMap);
System.out.println("111");
System.out.println(paramMap);
addWorker(paramMap, request, response);
System.out.println("222");
request.getRequestDispatcher("ServletQuery").forward(request, response);
}
//上传对象,并将表单数据其保存在HashMap中,
public void uploadHeader(HttpServletRequest request,HashMap<String, String> paramMap) throws UnsupportedEncodingException
{
//1.创建一个DiskFileItemFactory工厂
DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();
//2.创建一个文件上传解析器
ServletFileUpload servletFileUpload=new ServletFileUpload(diskFileItemFactory);
//3.解决上传文件中的中文乱码
servletFileUpload.setHeaderEncoding("utf-8");
List<FileItem> fileitems=null;
try {
fileitems= servletFileUpload.parseRequest(request);
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(FileItem fileitem :fileitems){
if(fileitem.isFormField()){
String fieldname=fileitem.getFieldName();
String fieldvalue=fileitem.getString("utf-8");
paramMap.put(fieldname, fieldvalue);
}
else{
String name= fileitem.getName();
//根目录
String rootDir=getServletContext().getRealPath("");
//文件目录
String fileDir=rootDir+"/upload/";
System.out.println(fileDir);
File file=new File(fileDir);
//如果文件不存在就创建文件夹
if(!file.exists()){
file.mkdirs();
System.out.println("makedir------");
}
File saveFile=new File(file,name);
try {
//将上传的文件写入到saveFile文件
fileitem.write(saveFile);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
paramMap.put(fileitem.getFieldName(), "upload/"+name);
}
}
}
//添加Worker的方法
private void addWorker(HashMap<String, String> parameters,HttpServletRequest request,HttpServletResponse response){
String userName=parameters.get("username");
int age=Integer.parseInt(parameters.get("age"));
int sex=Integer.parseInt(parameters.get("sex"));
String department=parameters.get("department");
String headerUrl=parameters.get("headerUrl");
String passWord=parameters.get("password");
System.out.println("username:"+userName+" age:"+age+" sex:"+sex+" department:"+department+" headerUrl:"+headerUrl+" password:"+passWord);
Worker worker=new Worker(userName, age, sex, department, headerUrl, passWord);
//调用数据库添加
workerService.add(worker);
}
}
头像上传实例
最新推荐文章于 2022-05-23 10:38:14 发布