HttpServlet上传文件

来源:互联网 发布:java批量上传图片 编辑:程序博客网 时间:2024/06/16 07:51

1.文件名.isFormField()     判断是不是普通的表单    

2.文件名.getFieldName();     得到普通表单的name属性  

3.文件名.getString("utf-8");     得到普通表单的值  

4.文件名.getName();     得到你上传的文件的名字  

5.  String savePath = this.getServletContext().getRealPath("/img");       得到你需要保存的地址的物理地址    

6.fileName.substring(fileName.lastIndexOf(".")      重命名的时候根据最后一个点来拆开  方便的到后缀名

7.File.separator             /  或者\




package student;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletContext;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 Imp.showStudentImp;import bean.StudentBean;import dao.StudentImpDao;public class AddStudent extends HttpServlet {    // 数据处理    private showStudentImp showStudent = new StudentImpDao();    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        doPost(req, resp);    }    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        ServletContext servletContext = request.getServletContext();        // 创建工厂        DiskFileItemFactory dk = new DiskFileItemFactory();        // 创建文件上传解码器        ServletFileUpload fileUpload = new ServletFileUpload(dk);        List<FileItem> list = null;        // 将文件名放在外面是为了方便后面保存到对象中        Map<String, String> map = new HashMap<String, String>();        String saveName = null;        try {            // 解析上传的数据 得到的是一个集合            list = fileUpload.parseRequest(request);            for (FileItem file : list) {                // 判断该表单是不是普通的表单                if (file.isFormField()) {                    // 获得每个表单的name                    String fileName = file.getFieldName();                    // 在获取表单里面的值                    String fileValue = file.getString("utf-8");                    // 将得到的值存入Map键值对中                    map.put(fileName, fileValue);                } else {                    // 不是的话就上传文件                    // 得到上传的文件的名字                    String fileName = file.getName();                    // 解决文件乱码                    fileName = new String(fileName.getBytes("iso-8859-1"), "utf-8");                    // 得到需要将文件保存的目录                    String savePath = this.getServletContext().getRealPath("/upload");                    // 重新命名上传的文件 防止你再次上传的时候上传了同一个文件导致覆盖了以前的文件名                    saveName = System.currentTimeMillis() + fileName.substring(fileName.lastIndexOf("."));                    // 直接就写入文件 上传到服务器                    file.write(new File(savePath + File.separator + saveName));                }            }        } catch (FileUploadException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 将信息保存到学生类中           StudentBean student = new StudentBean();        student.setStudentName(map.get("name"));        student.setPwd(map.get("pwd"));        student.setDenger(map.get("gender"));        // 保存的是地址而不是图片的名字          student.setImg("upload/" + saveName);        student.setLike(map.get("likes"));        student.setEducational(map.get("selects"));        // 添加学生          showStudent.addStudent(student);        // 重新请求派发到展示学生资料的界面        request.getRequestDispatcher("/ShowStudentsInformationSever?pageNo=0").forward(request, response);    }}


0 0
原创粉丝点击