一 form表单上传文件
前端
form表单上传文件
实体类
package com.qy.entity;public class User { private String username; private String myPic; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getMyPic() { return myPic; } public void setMyPic(String myPic) { this.myPic = myPic; } }
后端servlet
package com.qy.servlet;import java.io.IOException;import java.util.Arrays;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;import com.qy.entity.User;@WebServlet("/saveUser.do")@MultipartConfigpublic class UserSaveServlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); Part part = request.getPart("myPic"); System.out.println(part); //验证文件大小,后缀是否满足要求,获取原始文件名 long size = part.getSize(); //1m 1024*1024 if(size > 1024*1024){ System.out.println("文件大于1M!"); return ; } // String file = part.getHeader("Content-Disposition");//form-data; name="myPic"; filename="1024.jpg" //获取后缀 截取 . String suffix = file.substring(file.lastIndexOf(".")+1, file.length()-1); //比对后缀格式是否正确 String[] suffixs = {"jpg","png","gif"};content.lastIndexOf("=\"")+2,content.lastIndexOf("\"") boolean flag = Arrays.asList(suffixs).contains(suffix); if(!flag){ System.out.println("文件格式不正确!"); return ; } //获取保存路径 String path = request.getServletContext().getRealPath("/images/"); //保存文件到磁盘 String filename = System.currentTimeMillis()+"."+suffix; part.write(path+filename); //保存用户数据到数据库 User user = new User(); user.setUsername(username); user.setMyPic("images/"+filename); //调用dao层方法保存对象 //控制页面跳转 }}
ajax上传文件
前端
ajax上传文件
实体类与上面相同
后端servlet
package com.qy.servlet;import java.io.IOException;import java.util.Arrays;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;import com.qy.entity.User;@WebServlet("/saveUser2.do")@MultipartConfigpublic class UserSaveServlet2 extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); String username = request.getParameter("username"); Part part = request.getPart("myPic"); //验证文件大小,后缀是否满足要求,获取原始文件名 long size = part.getSize(); //1m 1024*1024 if(size > 1024*1024){ System.out.println("文件大于1M!"); response.getWriter().append("文件大于1M!"); return ; } // String file = part.getHeader("Content-Disposition");//form-data; name="myPic"; filename="1024.jpg" //获取后缀 截取 . String suffix = file.substring(file.lastIndexOf(".")+1, file.length()-1); //比对后缀格式是否正确 String[] suffixs = {"jpg","png","gif"}; boolean flag = Arrays.asList(suffixs).contains(suffix); if(!flag){ System.out.println("文件格式不正确!"); response.getWriter().append("文件格式不正确!"); return ; } //获取保存路径 String path = request.getServletContext().getRealPath("/images/"); //保存文件到磁盘 String filename = System.currentTimeMillis()+"."+suffix; part.write(path+filename); //保存用户数据到数据库 User user = new User(); user.setUsername(username); user.setMyPic("images/"+filename); //调用dao层方法保存对象 //返回保存成功 response.getWriter().append("上传成功!"); }}