基本操作--图片上传

//1、创建FileItemFactory对象
FileItemFactory fileItemFactory=new DiskFileItemFactory();
    //2、创建ServletFileUpload对象
    ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
    //3、判断是否提交了文件上传的操作,也就是判断form中是否有multipart/form-data属性值
    if(upload.isMultipartContent(request)){
        //有,执行
        //4、解析所有的请求对象,得到一个List<FileItem>集合
        try {
            List<FileItem> items = upload.parseRequest(request);
            //5、循环集合操作
            for (FileItem item : items) {
                //6、判断是普通表单元素还是文件域
                if(item.isFormField()){

                    //取得表单元素的value值,等价于request.getParameter();


                    //例,给User对象赋值
                    User user = new User();
                    if(item.getFieldName().equals("username")){
                        user.setUname(item.getString("utf-8"));
                    }
                    if(item.getFieldName().equals("password")){
                        user.setUpwd(item.getString("utf-8"));
                    }
                }else{
                    //文件域
                    //7、操作文件(取值、设置、保存)
                    //取得文件名,用于保存文件
                    String fileName=item.getName();
                    //浏览器差异会导致fileName显示内容不一致,做统一化处理
                    //int index=fileName.lastIndexOf('\\');
                    //String newStr=fileName.substring(index+1);
                    //System.out.println(fileName);
                    //System.out.println(newStr);
                    fileName=fileName.substring(fileName.lastIndexOf('\\')+1);
                    //设置保存路径
                    String path=this.getServletConfig().getServletContext().getRealPath("/upload");
                    System.out.println(path);
                    //文件保存
                    File file = new File(path+"\\"+fileName);
                    item.write(file);
                    response.getWriter().print("<script>alert('文件上传成功')</script>");
                }


            }

        } catch (FileUploadException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }else{
        //没有,提示
        response.getWriter().print("<script>alert('表单设置有问题,请检查')</script>");
        response.getWriter().print("<script>location.href='chp06part2/fileupload.jsp'</script>");
    }

猜你喜欢

转载自blog.csdn.net/weixin_41518795/article/details/81946664
今日推荐