单纯form表单提交 上传文件时,form表单应加上参数 enctype="multipart/form-data
后台接收时的代码:将表单数据封装进 List集合中
package com.jredu.servlet;import java.io.file;import java.io.IOException;import java.util.ArrayList;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.fileUploadException;import org.apache.commons.fileupload.disk.diskfileItemFactory;import org.apache.commons.fileupload.servlet.ServletfileUpload;import com.jredu.model.User;import com.jredu.service.UserService;import com.jredu.service.Impl.UserServiceImpl;@WebServlet("/register.action")public class Register extends httpServlet { /** * */ private static final long serialVersionUID = 1057467000241502504L; @OverrIDe protected voID doPost(httpServletRequest req,httpServletResponse resp) throws servletexception,IOException { // Todo auto-generated method stub doGet(req,resp); } @OverrIDe protected voID doGet(httpServletRequest req,IOException { // Todo auto-generated method stub UserService service = new UserServiceImpl(); // 创建磁盘工厂 缓冲区和磁盘目录 diskfileItemFactory factory = new diskfileItemFactory(); // 设置文件上传的大小限制 ServletfileUpload upload = new ServletfileUpload(factory); upload.setfileSizeMax(1024 * 1024 * 10);// 最大上传10M upload.setheaderEnCoding("utf-8");// 设置编码格式 try { String name = null; // 注册获取前台的值 String value = null; String newname = null; ArrayList<Object> List = new ArrayList<Object>(); @SuppressWarnings("unchecked") List<fileItem> files = upload.parseRequest(req); for (fileItem fileItem : files) { // 判断当前的数据时文件还是普通的表单 if (fileItem.isFormFIEld()) { // 是文件 name = fileItem.getFIEldname();// 获取属性的名字 value = fileItem.getString("utf-8");// 获取属性的值 List.add(value); } else {// 是表单 // 获取文件上传的文件名 name = fileItem.getname(); // 定义一个新的文件来接收 newname = System.currentTimeMillis() + name;// 以当前的总秒数来命名防止图片名称相同而覆盖 file file = new file("D:\image\" + newname); // 图片的存储路径 String headimg = "img/" + newname; List.add(headimg); // 从缓冲区写入磁盘 fileItem.write(file); fileItem.delete(); } } // 获取到全部的用户列表 List<User> uList = service.allUser(); // 将新注册的用户存入数据 boolean flag = service.register(List); if (flag) { System.out.println("注册成功"); // 跳转到登陆界面 req.getRequestdispatcher("/page/login.Jsp").forward(req,resp); } else { System.out.println("注册失败"); } } catch (fileUploadException e) { // Todo auto-generated catch block e.printstacktrace(); } catch (Exception e) { // Todo auto-generated catch block e.printstacktrace(); } }}总结
以上是内存溢出为你收集整理的通过form表单上传文件,后台接收的方法全部内容,希望文章能够帮你解决通过form表单上传文件,后台接收的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)