添加学生上传头像

来源:互联网 发布:网络让人更不自由辩论 编辑:程序博客网 时间:2024/04/28 13:50


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
原创粉丝点击