JAVA从入门到精通之使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传
沉沙 2019-08-07 来源 : 阅读 2364 评论 0

摘要:本篇文章探讨了JAVA从入门到精通之使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章探讨了JAVA从入门到精通之使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

JAVA从入门到精通之使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传

"

layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。

本次教程是基于springboot2.0的。

废话少说,进入主题。

 在pom文件导入commons-fileupload 1.3.3依赖或者jar包

        
                    commons-fileupload            commons-fileupload            1.3.3

1.导入完毕之后配置bean

@Configurationpublic class SpringBean {    //设置文件上传的配置
    @Bean(name = ""multipartResolver"")    public CommonsMultipartResolver multipartResolver(){
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setDefaultEncoding(""UTF-8"");
        resolver.setMaxUploadSize(52428800);//设置上传文件的最大值
        resolver.setResolveLazily(true);        return resolver;
    }
}

2.在yml配置文件

file:
  staticAccessPath: /upload/**
  uploadFolder: G://upload/

3.然后配置文件夹映射,不然无法在项目中获取电脑上的文件

不过这个好像和文件上传没有关系,哈哈哈。想配置的就配置一下吧,反正之后获取图片时也会配置的。

@Configurationpublic class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Value(""${file.staticAccessPath}"")    private String staticAccessPath;
    @Value(""${file.uploadFolder}"")    private String uploadFolder;
    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(staticAccessPath).addResourceLocations(""file:"" + uploadFolder);
        registry.addResourceHandler(""/static/**"").addResourceLocations(""classpath:/static/"");
    }}

4.之后创建一个实体类,当然你也可以不创建,直接把MultipartFile写在方法参数中,但是一定要做注意参数命名一定要是file,一定要是file,一定要是file。重要的事情说三遍。

实体类中MultipartFile属性名也必须叫file。写实体类的好处是可以方便携带其他的参数,比如和图片绑定的用户id等等

  FileVo
file;    public FileVo(MultipartFile multipartFile) {        this.file = multipartFile;
    }    public FileVo(){}    public MultipartFile getFile() {        return file;
    }    public void setFile(MultipartFile file) {        this.file = file;
    }
}

5.然后在Controller层加入以下方法。因为只是测试所以就写到了controller层,当然你也可以把文件上传方法放到util类,或者service层

@RestController
@RequestMapping(""/upload"")public class UploadController {
    @Value(""${file.uploadFolder}"")    private String uploadFolder;    /**
     * UUID随机的命名
     * 普通上传,多图片上传
     * @param fileVo
     * @return     */
    @RequestMapping(""/randomUplad"")    public Map randomUplad(FileVo fileVo){
        System.out.println(""fileVo:""+fileVo.getFile());
        String fileUrl = fileUpload(fileVo,true);        return this.file(fileUrl);
    }    /**
     * 上传文件的全名称命名
     * 指定允许上传的文件类型,允许上传的文件后缀,视频
     * @param fileVo
     * @return     */
    @RequestMapping(""/nameUplad"")    public Map nameUplad(FileVo fileVo){
        System.out.println(""fileVo:""+fileVo.getFile());
        String fileUrl = fileUpload(fileVo,false);        return this.file(fileUrl);
    }    /**
     * 文件上传,随机UUID
     * @param fileVo 上传的实体
     * @param b 判断是用随机的uuid还是文件的名称,默认为UUID
     * @return 上传的URL地址     */    public String fileUpload(FileVo fileVo,boolean b) {        if (fileVo.getFile()==null) {            return null;
        }        //随机一个id
        String name = fileVo.getFile().getOriginalFilename();        if (b) {   //判断是否用什么命名,true为UUID,false为上传文件的全名称            //获取文件的后缀
            String[] split = name.split(""\\."");     //  匹配小数点(.)必须转义,否则split方法无效
            name = UUID.randomUUID().toString().replaceAll(""-"", """")+"".""+split[split.length-1];
        }
        String fileUrl = this.uploadFolder+""/""+name;
        System.out.println(""fileUrl:""+fileUrl);
        File file = new File(fileUrl);        try {
            fileVo.getFile().transferTo(file);
        } catch (IOException e) {
            fileUrl = null;
        }        return fileUrl;
    }
    @RequestMapping(""/fileUploads"")    public Map fileUploads(MultipartFile file[]){        return this.file(null);
    }    /**
     * 返回是否上传成功的参数
     * @param url
     * @return     */    public Map file(String url){
        Map map = new HashMap();        if (url==null||url=="""") {
            map.put(""msg"",""上传失败"");
            map.put(""code"",500);            return map;
        }
        map.put(""msg"",""上传成功"");
        map.put(""code"",200);
        map.put(""url"",url);        return map;
    }
}

      本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程