servlet文件上传以及多个文件上传

 文件上传form表单必须有multpart属性和post

    <form action="FileUpload" method="post" enctype="multipart/form-data">
        <input type="file" name="file1"/>
        <input type="submit" value="上传"/>
    </form>

 

这个是servlet里面有注释

//		开始上传upload
        boolean isMultpart = ServletFileUpload.isMultipartContent(request);//判断上传的form是否有MultiPart属性multipart
        if(true) {//判断前端form是否有multipart属性
            try {
                FileItemFactory factory = new DiskFileItemFactory();
                ServletFileUpload  upload = new ServletFileUpload(factory);//上传需要ServletFileUpload对象而需要上一行的支持
                List<FileItem> items = upload.parseRequest(request);
                Iterator<FileItem> iter = items.iterator();
                String videoPath= "";
                String videoImgPath="";
                Boolean bool  = true;
                while(iter.hasNext()) {
                    FileItem item = iter.next();
                    String itemName = item.getFieldName();
                    //文字字段或文件字段
                    if(item.isFormField()) { // 文字字段
                        if(itemName.equals("videoType")) {
                            System.out.println(item.getString("utf-8"));
                            videoType = item.getString("utf-8");

                        }
                        if(itemName.equals("videoName")) {
                            System.out.println(item.getString("utf-8"));
                            videoName = item.getString("utf-8");
                        }
                        //只要有一个为空则不上传数据库
                        if( item.getString("utf-8").equals("")){
                            bool = false;
                        }
                    }else{	//文件字段

                        //文件字段
//						获取文件名
                        String fileName = item.getName();
//                        获取指定的文件名称
                        String suffix = fileName.substring(fileName.indexOf(".")+1,fileName.length());
                        if(suffix.equals("jpg") || suffix.equals("png") || suffix.equals("mp4")){
                            //获取当前绝对路径
                            String directoryName = "";
                            if(suffix.equals("jpg") || suffix.equals("png") ){
                                directoryName = "UploadImg";
                                videoImgPath = fileName;
                            }else if(suffix.equals("mp4")){
                                directoryName = "UploadVideo";
                                videoPath = fileName;
                            }else{
                                bool = false;
                            }
                            String path = request.getSession().getServletContext().getRealPath(directoryName);
                            //打印当前路径
                            System.out.println(path);
                            //new 文件类
                            File file = new File(path,fileName);
                            try {
                                item.write(file);
//							文件上传成功
                                System.out.println("文件上传成功");
                            } catch (Exception e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }finally {
                                //关闭流
                            }
                        }else{
                            out.print("文件明不正确");
                            bool = false;
                        }
                    }
                }
            } catch (FileUploadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }吧数据传入fileItem的集合里
        }else {
            System.out.println("提交表单里没有multipart属性");
        }


 还有必须有

commons-io-2.4.jar

commons-fileupload-1.3.1.jar

两个jar包

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值