Java文件上传(基础性)

/**
 * 
 * 上传文件
 *
 */
public class FileUploadServlet2 extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            // 1.创建磁盘文件项工厂----这里的temp为临时文件目录
            String path_temp = this.getServletContext().getRealPath("temp");
            DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 1024, new File(path_temp));
            // 2.创建文件上传的核心类
            ServletFileUpload upload = new ServletFileUpload(factory);
            // 设置上传文件名的编码----以防文件名乱码
            upload.setHeaderEncoding("utf-8");
            // ServletFileUpload的API
            boolean multipartContent = upload.isMultipartContent(request);// 判断表单是否是文件上传的表单
            if (multipartContent) {
                // 是文件上传的表单
                // **解析request获得文件项集合
                List<FileItem> parseRequest = upload.parseRequest(request);
                if (parseRequest!=null) {
                    for (FileItem item : parseRequest) {
                        //判断是不是一个普通表单项
                        boolean formField = item.isFormField();
                        if (formField) {
                            //普通表单项
                            String fieldName = item.getFieldName();
                            String fieldValue = item.getString("UTF-8");//对普通表单项的内容编码
                        } else {
                            //获取文件名
                            String fileName = item.getName();
                            //得到输入流
                            InputStream in = item.getInputStream();
                            //获取文件存放路径
                            String path = this.getServletContext().getRealPath("upload");
                            //将文件存入相应目录
                            OutputStream out = new FileOutputStream(path+"/"+fileName);
                            IOUtils.copy(in, out);
                            in.close();
                            out.close();
                            //最后删除temp目录下的临时文件、
                            item.delete();
                        }
                    }
                }
            } else {
                // 非文件上传表单,用原始获取方式request.getParameter("表单name");
            }
        } catch (FileUploadException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

猜你喜欢

转载自www.cnblogs.com/y-song/p/10853007.html
今日推荐