springboot上传文件

GitHub本人springbootUploadFile链接:Fegert/springbootUploadFile
(一篇代码博客)
springboot项目的Resources包下static包下建:

SpringBoot官方文档告诉我们,statis这个目录里面应该存放一些静态文件,比如
css、js、image并且可以直接被外部访问到。而templates这个目录则存放一些静态页面,如jsp、html、ftl。并且template这个目录里的内容外部是访问不到的。按照规范,我们将picUpload.html文件放到templates目录下。

   > <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form enctype="multipart/form-data" method="post" action="/upload">
    <!--注意form标签里的enctype属性必须指定为:multipart/form-data-->
        文件:<input type="file" name="file"/>
       <!--name属性值必须与controller中的-->
        <input type="submit" value="上传"/>
    </form>
    </body>
    </html>

controller层代码:

/*注意这里的name="file",与上方file标签中的name属性值对应*/
   public String uploadFile(@RequestParam(name = "file") MultipartFile multipartFile) {
        //指定存放文件路径
        String fileDir = "/usr/local/src/static/img";
        File dir = new File(fileDir);
        //判断目录是否存在,不存在则创建目录
        if (!dir.exists()) {
            dir.mkdir();
        }
        /**生成新的文件名,防止文件名重复而导致文件覆盖*/
        //1.获取源文件的后缀名
        String originalFileName = multipartFile.getOriginalFilename();
        String suffix = originalFileName.substring(originalFileName.lastIndexOf('.'));
        //2.使用UUID生成新的文件名
        String newFileName = UUID.randomUUID() + suffix;
        //生成文件
        //生成文件
        File file = new File(dir, newFileName);
        try {
            //传输文件内容
            multipartFile.transferTo(file);
            System.out.println("文件上传成功");
        } catch (IOException e) {
            System.out.println("上传文件失败");
            e.printStackTrace();
        }
        log.info("这个controller运行了");
        return "http://129.211.66.191/usr/local/src/static/img/" + newFileName;
    }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值