当前位置:首页 > Java技术 > layui+springmvc实现文件异步上传

layui+springmvc实现文件异步上传

2022年11月09日 23:18:14Java技术12

一.单文件上传

前端代码

 <div class="layui-upload">
        <div class="layui-upload-list">
            <img class="layui-upload-img" id="demo1">
            <p id="demoText"></p>
        </div>
        <button type="button" class="layui-btn" id="upload_btn">上传图片</button>

 </div>
layui.use('upload', function() {
    var $ = layui.jquery
        , upload = layui.upload;

    //普通图片上传
    var uploadInst = upload.render({
        elem: '#upload_btn'
        , url: '/uploadImg'
        , before: function (obj) {
            //预读本地文件示例,不支持ie8
            obj.preview(function (index, file, result) {
                $('#demo1').attr('src', result); //图片链接(base64)
            });
        }
        , done: function (res) {
            //如果上传失败
            if (res.code === 0){
                return layer.msg('文件上传成功!');
            }
            if (res.code === 2) {
                return layer.msg('不支持该上传类型');
            }
            if (res.code === 3) {
                return layer.msg('文件为空');
            }else{
                return layer.msg('文件上传异常');

            }
            //上传成功
        }
        , error: function () {
            //演示失败状态,并实现重传
            var demoText = $('#demoText');
            demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
            demoText.find('.demo-reload').on('click', function () {
                uploadInst.upload();
            });
        }
    });
});

 

后端代码

在这边遇到一些问题:

1.springmvc的xml需要配置文件上传的类,否则会接收不了上传的文件

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件最大尺寸,单位为B -->
        <property name="maxUploadSize" value="1000000000" />
    </bean>

2.接收文件需要用@RequestParam("file")指定参数名称,layui默认文件上传的name是file

3.获取项目的绝对路径并拼接成新的图片地址

@Controller
public class FileUploadController {
    @RequestMapping("/uploadImg")
    @ResponseBody
    public RetResult upload(@RequestParam("file") MultipartFile multipartFile, HttpSession session){

        if (!StringUtils.isEmpty(multipartFile) && multipartFile.getSize()>0){
            String filename = multipartFile.getOriginalFilename();
            String suffix = filename.substring(filename.lastIndexOf(".") + 1);
            if (filename.endsWith("jpg")||filename.endsWith("png")){

                String realPath = session.getServletContext().getRealPath("/")+"/image/"+new Date().getTime()+"."+suffix;
                File newfile = new File(realPath);
                try {
                    multipartFile.transferTo(newfile);
                    return RetResult.successRet(null);
                } catch (IOException e) {
                    e.printStackTrace();
                    return RetResult.errorRet(1,"文件上传异常");
                }
            }else {
                return RetResult.errorRet(2,"不支持该上传类型");
            }
        }else {
            return RetResult.errorRet(3,"文件为空");
        }

    }
}

  

作者:薛定谔病态猫
来源链接:https://www.cnblogs.com/wangxiayun/p/9265248.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/69027.html

标签: SpringMVC
分享给朋友:

“layui+springmvc实现文件异步上传” 的相关文章

springmvc+swagger构建Restful风格文档

springmvc+swagger构建Restful风格文档

  本次和大家分享的是java方面的springmvc来构建的webapi接口+swagger文档;上篇文章分享.net的webapi用swagger来构建文档,因为有朋友问了为啥.net有docpage文档你还用swagger,这里主要目的是让接口文档统一,当操作多种开发语言做接口时...

SpringBoot和SpringMVC的区别

SpringBoot和SpringMVC的区别

一 面试提问 👨‍💻面试官:SpringBoot和SpringMVC的区别 🙋我: 形式上:SpringBoot是一个自动化配置的工具;SpringMVC是一个web框架 在搭建项目时:SpringMVC需要手动配置xml...

springmvc常见乱码处理

用三层架构做项目时,有时处理不当就经常是乱码问题,我也尝尝为此感到头疼,先说说我的方法,数据库建表用的字符编码方式最好和开发工具使用的字符编码保持一致,utf-8,utf-16等等。 1,响应头导致有乱码 一般都是在doget或者dopost方式中设置编码方式...

SpringMVC重定向

SpringMVC重定向

一、springMVC重定向有两种方式 @Controller @RequestMapping("/OA") public class RedirectService { @RequestMapping(value="/index") public String te...

spring mvc 请求转发和重定向

spring mvc controller间跳转 重定向 传参 url:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ 1. 需求背景     需求:spr...

【SpringMVC】SpringMVC配置FastJson

【SpringMVC】SpringMVC配置FastJson

目前网络上传递数据大部分都是json和xml,但是xml使用的很少了,这里主要介绍json,一般来说json常用的场景是提供外部接口,请求内使用request域就足够了 springmvc对于json的支持,上图 1.请求json方式分析 如果...

SpringMVC中参数的传递(一)

SpringMVC中参数的传递(一)

前言 1.首先,我们在web.xml里面配置前端控制器DispatcherServlet以及字符编码过滤器(防止中文乱码),配置如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2...

SpringMVC和Springboot的区别(网摘)

spring boot 我理解就是把 spring spring mvc spring data jpa 等等的一些常用的常用的基础框架组合起来,提供默认的配置,然后提供可插拔的设计,就是各种 starter ,来方便开发者使用这一系列的技术,套用官方的一句话, spring 家族发展...

springmvc注解时对象为null

springmvc的机制有关系  是启动项目的时候才注入 所以你不能new任何 里面有注解 需要注入的对象 全部懂用@Autowired 注解来引入 作者:wcy10086 来源链接:https://blog.csdn.net/qq_3694...

SpringMVC使用@ResponseBody日期返回时间戳的问题

SpringMVC使用@ResponseBody日期返回时间戳的问题

使用springMVC的@ResponseBody注解返回日期时,返回给前台页面显示的是一个时间戳, 解决方法就是自己写一个工具类,继承JsonSerializer泛型类型为日期Date 在对应POJO类日期字段的get方法上 加上如下图所示的...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。