zoukankan      html  css  js  c++  java
  • jsp中的文件上传

      首先需要有以下的jar包

      jsp代码如下:

    <!-- ${pageContext.request.contextPath}为: "/" + 当前项目名   -->
        <form action="${pageContext.request.contextPath}/upLoad" method="post"  enctype="multipart/form-data">
            <p><label for="picture">图片:</label><input type="file" name="picture"/></p>
            <p><label for="picture">图片:</label><input type="file" name="picture"/></p>
            <p><input type="submit" value="上传"/></p>
        </form>

       使用文件上传必须使用POST方式进行上传,以及添加enctype属性

    控制器代码如下

    @RequestMapping(value= {"upLoad"})
        public String upLoad(@RequestParam(value="picture",required=false) MultipartFile[]  picture,
                HttpServletRequest request) {
            //获取服务器上传地址
            String path = request.getRealPath(File.separator)+"myupload";
            if(picture.length>0&&picture!=null) {
                for (MultipartFile p : picture) {
                    if (p.isEmpty()) {     
                        break;
                    }
                    //获取文件名
                    String oldFileName =p.getOriginalFilename();
                    //获取后缀
                    String suffix = oldFileName.substring(oldFileName.lastIndexOf(".")+1, oldFileName.length());
                    //设置随机名称  防止覆盖同名文件
                    String fileName = UUID.randomUUID().toString().replaceAll("-", "")+"."+suffix;
                    System.err.println(fileName);
                    //根据 路径符串,名字符串创建一个新 File实例。 
                    File targetFile = new File(path,fileName);
                    try {
                        //transferto()方法,是springmvc封装的方法,用于图片上传时,把内存中图片写入磁盘
                        p.transferTo(targetFile);  
                        System.err.println("成功!");
                        log.debug("文件上传成功");
                    }catch (Exception e) {
                        e.printStackTrace();
                        log.error("文件上传失败: "+e.getMessage());
                    }
                }
            }else {
                System.err.println("失败!");
            }
            return "success";
        }

     此时可以上传之后可以再增加一些条件,如判断文件的类型,文件夹是否存在等,如下

         if(!Arrays.asList("jpg","png","jpeg","pneg").contains(suffix)) {
                      System.out.println("图片格式错误必须是jpg,PNG,JPEG,pneg其中一种");
                     return "error";
             }
             if(!targetFile.exists()) {
                     targetFile.mkdirs();//如果路径不存在,就创建该目录
             }
  • 相关阅读:
    SpringBoot实现原理
    常见Http状态码大全
    forward(转发)和redirect(重定向)有什么区别
    1094. Car Pooling (M)
    0980. Unique Paths III (H)
    1291. Sequential Digits (M)
    0121. Best Time to Buy and Sell Stock (E)
    1041. Robot Bounded In Circle (M)
    0421. Maximum XOR of Two Numbers in an Array (M)
    0216. Combination Sum III (M)
  • 原文地址:https://www.cnblogs.com/hfx123/p/9796670.html
Copyright © 2011-2022 走看看