layui文件上传接口后端具体实现SpringMVC

2023-11-19

做课程设计时候,用到了layui文件上传接口,参考官方文档给出的响应接口文档:

{
 "code": 0
 ,"msg": ""
 ,"data": {
 "src": "http://cdn.layui.com/123.jpg"
 }
}

然后具体的上传书写方式分为前端和后端,layui官方并没有说明上传的接口文档,因此在网上查了一些资料,写出来总结一下:

前端:

var formData = new FormData();
	var url_userProfileUpdate='api/v1/idol/userProfileUpdate';
	layui.use('upload', function(){
		  var upload = layui.upload;
		  //执行实例
		  var uploadInst = upload.render({
		    elem: '#test1' //绑定元素
		    ,url: url_userProfileUpdate //上传接口
		    ,data:formData //可选项。额外的参数,如:{id: 123, abc: 'xxx'}
		    ,before: function(obj){
		        //预读本地文件示例,不支持ie8
		        obj.preview(function(index, file, result){
		          $('#user_profile').attr('src', result); //图片链接(base64)
		        });
		      }
		    ,done: function(res){
		    	alert(res.msg);
		    }
		    ,error: function(){
		      //请求异常回调
		    }
		  });
		});

后端:

@ResponseBody
	@RequestMapping(value="userProfileUpdate",method = RequestMethod.POST)
	public String userProfileUpdate(@RequestParam("file")MultipartFile file,HttpServletRequest request,HttpServletResponse response) throws Exception
	{
		 JSONObject res = new JSONObject();
         JSONObject resUrl = new JSONObject();
		if(UserAuth.authUser(request))
		{
		 String username=UserAuth.getUsername(request);
         //上传文件路径 
         String path =request.getSession().getServletContext().getRealPath("imgs")+"\\";
         System.out.println("文件名称"+file.getOriginalFilename()); 
         //上传文件名         
         String name = file.getOriginalFilename();//上传文件的真实名称
         String suffixName = name.substring(name.lastIndexOf("."));//获取后缀名
         String hash = Integer.toHexString(new Random().nextInt());//自定义随机数(字母+数字)作为文件名
         String fileName = hash + suffixName;  
         HashMap<String,String> profile=new HashMap<String,String>();
//         userService
         profile.put("username", username);
         profile.put("profile", fileName);
         boolean userProfileUpdate = userService.userProfileUpdate(profile);
         if(userProfileUpdate)
         {
         File filepath = new File(path, fileName); 
        // System.out.println("随机数文件名称"+filepath.getName()); 
         //判断路径是否存在,没有就创建一个 
         if (!filepath.getParentFile().exists()) { 
             filepath.getParentFile().mkdirs(); 
             } 
         //将上传文件保存到一个目标文档中 
         File tempFile = new File(path + fileName);
         file.transferTo(tempFile);
         
         resUrl.put("src", tempFile.getPath());
         res.put("code", 0);
         res.put("msg", "上传成功!");
         res.put("data", resUrl);
         //str = "{\"code\": 0,\"msg\": \"上传成功\",\"data\": {\"src\":\""+path+fileName + "\"}}";
        // System.out.println("res里面的值:");
         System.out.println(res.toString());    
         return res.toString();
         }
         else
         {
			 res.put("code", 0);
	         res.put("msg", "上传失败!");
	         res.put("data", null);
	         return res.toString();
         }
		}
		else
		{
			 res.put("code", 0);
	         res.put("msg", "上传失败!");
	         res.put("data", null);
	         return res.toString();
		}
	}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

layui文件上传接口后端具体实现SpringMVC 的相关文章

随机推荐

  • Handler机制与原理

    为什么会出现内存泄漏问题呢 分析 Handler使用是用来进行线程间通信的 所以新开启的线程是会持有Handler引用的 如果在Activity等中创建Handler 并且是非静态内部类的形式 就有可能造成内存泄漏 非静态内部类是会隐式持有
  • uniapp 开发微信小程序之新版隐私协议

    自从微信小程序官方更新隐私协议 用户必须同意之后 才能获取个人信息 这就导致在获取用户信息之前 需要有个隐私协议弹窗 大致如下图 微信小程序官方提供的API和 uniapp 开发的稍微有点区别 这里只记录 uniapp 开发的 如果需要微信
  • 高中学历的程序员,以包装的方式进入现在的公司,想跳槽咋办?

    网友自述 我在现在广州这家公司工作了两年 技术上有一定提升 但这两年我过得一直不是很快乐 因为我学历包装 所以我不敢跟同事交往太深 一直孤身一人 非常难受 可能这就是代价吧 现在我想换一个公司 我不想再用假身份了 但不知道用高中学历是否能够
  • Java对点、线、面生成栅格瓦片jpg,并渲染呈现

    Java对点 线 面生成栅格瓦片jpg 并渲染呈现 1 效果图 2 原理 2 1 面瓦片的生成 2 2 线瓦片的生成 2 3 多点瓦片的生成 3 源码 参考 这篇博客将介绍从前端HTML页面到后端预生成栅格瓦片jpg 并提供查询接口供前端h
  • Python文件操作

    1 with open E 信息 docx rb as f 2 read data f read 3 f closed rb 以二进制形式读取指定路径的文件 再以二进制形式写入指定路径 wb 1 with open E 信息 2 docx
  • Go Web编程实战(6)----反射

    目录 反射 反射的3大原则 接口类型变量 转换为 反射类型对象 反射类型对象 转换为 接口类型变量 反射类型对象 修改 值必 可写的 反射 与其他语言一样 Go语言的反射同样是指 计算机程序在运行时 可以访问 检测和修改它本身状态或行为的一
  • MAC 怎么终端怎么退出和进入Anaconda环境

    mac安装完anaconda 后 命令行窗口默认使用conda的 取消默认 用以下一行代码在命令行运行即可 重启终端 conda config set auto activate base false 将false改为true设置默认环境为
  • Codeforces 1475C. Ball in Berland(二元容斥)

    题目传送门 题意 一个班级有a个男生和b个女生 现在这个班级有k对男女愿意一起出席毕业典礼 这里注意k对男女中可能会有某个男生或女生出现在多个pair中 你从这k对中找出两对 使得这两对中的男生不相同 女生不相同 即一个男生或女生不可能在一
  • cuda 矩阵乘法,从最容易理解到算得最快(第二版源码-tile机制+共享内存)

    下面我们仅仅引入tiling方法 在共享内存中进行分块矩阵的乘法运算 先分析一下能够减少多少次对全局存储区的访问 当M N K 4096时 用第一版的代码 忽略cache的缓存时 需要从全局存储区读取2 4096 3 个float变量 为了
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010

    意大利著名好车品牌 法拉利 一直在世界上享受名誉 该游戏作品将带领玩家感悟法拉利的文化底蕴 游戏介绍 法拉利虚拟学院2010 包括了2010款法拉利F1赛车F10 以及三条通过镭射扫描技术绘制的高精度赛道 Fiorano Mugello N
  • spring boot 简介以及作用

    我们都知道spring是一个功能非常强大的框架 但是它也存在非常不好的弱点 也是对于我们普通的程序员的致命的弱点 就是它的配置文件太多了 而 在开发界一直有一句话 就是约定大于配置 这样一句话 就是说系统 类库 框架应该假定合理的默认值 而
  • JsonObject对象和jsonArrsy数组的获取JDK1.8,添加到表中

    1 基础数据结构 一个合同号对应多个批号 一个批号对应多个车辆 arrivalReport contractContent contractNumber 2021 11 17合同号 orderNumber 2021 11 17 0032订单
  • AbstractQueuedSynchronizer之AQS

    文章目录 AbstractQueuedSynchronizer AQS 概述 基本原理 实现细节 等待队列 state属性 独占模式 ReentrantLock AbstractQueuedSynchronizer AQS 概述 Abstr
  • 爬虫学习笔记(十五)——加密解密

    文章目录 一 概念和作用 1 1 概念 1 2 作用 1 3 常用加密方式 二 字符编码 2 1 进制间转换方法 python 2 2 unicode 三 Base64编码原理 3 1 概念 3 2 作用 3 3 Base64编码表 3 4
  • MySQL备份与恢复

    2 3 1备份MySQL数据库 在MySQL的bin目录下 有一个名为mysqldump的可执行文件 将该bin目录添加到环境变量中 可以利用它在 命令提示符 环境下来备份数据库 语法格式如下 mysqldump opt 要备份的数据库名
  • 词项(term)与词条(token)区别

    传送门
  • Sublime Text 3 全程详细图文教程(转载)

    今天被群里大佬安利了一款文本编辑软件 找了一下相关教程 一 前言 使用Sublime Text 也有几个年头了 版本也从2升级到3了 但犹如寒天饮冰水 冷暖尽自知 最初也是不知道从何下手 满世界地查找资料 但能查阅到的资料 苦于它们的零碎
  • 系统CPU飙高和频繁GC,我要怎么排查

    1 Full GC次数过多 相对来说 这种情况是最容易出现的 尤其是新功能上线时 对于Full GC较多的情况 其主要有如下两个特征 线上多个线程的CPU都超过了100 通过jstack命令可以看到这些线程主要是垃圾回收线程 通过jstat
  • 理解图像的傅里叶变换(细心分析)

    最近在看图像的傅里叶变换 看着频谱图一直没看明白到底为啥是那样的 跟同学研究了好久 终于想明白了 感谢同学的耐心指导 大家相互讨论真的很快就能出结果 多讨论 多学习 图像的傅里叶变换 图像是一个二维的信号 所以对它进行二维的傅里叶变换 对于
  • layui文件上传接口后端具体实现SpringMVC

    做课程设计时候 用到了layui文件上传接口 参考官方文档给出的响应接口文档 code 0 msg data src http cdn layui com 123 jpg 然后具体的上传书写方式分为前端和后端 layui官方并没有说明上传的