如何实现Maven项目web多图片上传及格式验证
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,小编给大家分享一下如何实现Maven项目web多图片上传及格式验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先来展示一
千家信息网最后更新 2024年10月21日如何实现Maven项目web多图片上传及格式验证
小编给大家分享一下如何实现Maven项目web多图片上传及格式验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
先来展示一下效果
客户在添加的时候进入添加页面,需要上传文件时的相关页面及代码
注:前端页面重要代码,multiple的作用是支持多图片上传,此处点击事件一定要使用onchange事件,切记不要误用onclick事件!!
注:
以下为前端页面对应的onchange事件的代码及解析
//jQuery函数 对应上面的onchange事件 function uploadFile() { //由于该JSP页面只有一个表单,因此只需要定义下标为0即可指定当前表单 let formData = new FormData($("form")[0]); //关键代码:ajax异步上传图片 $.ajax({ url: "uploadFile",//此处对应controller控制层中RequestMapping注解中的值 data: formData,//需要上传的表单数据 type: "post",//此处要用post方式上传,原因是get方式对上传文件大小有限制 //processData 默认为true,当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data processData: false, //ajax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件。 contentType: false, success: function (msg) { //判断校验上传文件的格式是否为常用图片类型\ let str = ""; let split = msg.split(",");//用逗号切割 为数组 let flag = false; for (let i = 0; i < split.length; i++) { if (split[i].endsWith(".jpg") || split[i].endsWith(".png") || split[i].endsWith(".bmp") || split[i].endsWith(".jpeg") || split[i].endsWith(".gif")) { flag = true; } else { //一旦不满足上面的条件,就将旗帜flag设置为false,并打破循环 flag = false; break; } //循环遍历数组拼接字符串,src中需要添加虚拟路径 str += ''; } if (flag) { $("[name=img]").val(msg) $("#sp1").html(str) } else { alert("上传图片格式错误!!") $("[name=img]").val("")//清空之前的代码,后台JSR303自动校验不能为空 } } }) }
接下来看一下后台controller层的图片上传代码及解析
//@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。//@RequestParam:将请求参数绑定到后台控制器的方法参数上(是springmvc中接收普通参数的注解)(以此确保和前端页面name属性中的值一致) @RequestMapping("uploadFile") @ResponseBody //加上 @ResponseBody 后,会直接返回 json 数据。 public String uploadFile(@RequestParam("file") MultipartFile[] files) throws IOException { //要存放图片的本机地址 String path = "D://img"; String[] fileNames = new String[files.length]; String imgs = ""; for (int i = 0; i < fileNames.length; i++) { //UUID用于随机生成不重复的文件名 // getOriginalFilename()该方法用于获取前台上传文件的名称,和UUID做此处理确保上传的文件名唯一 fileNames[i] = UUID.randomUUID().toString() + files[i].getOriginalFilename(); File file = new File(path, fileNames[i]); files[i].transferTo(file);//把文件路径所指向的文件上传到对应的目录下。 imgs += "," + fileNames[i]; } //截取imgs头部多出来的逗号 imgs = imgs.substring(1); return imgs; }
以上是"如何实现Maven项目web多图片上传及格式验证"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
图片
代码
页面
事件
格式
前端
参数
后台
方法
时候
注解
篇文章
表单
循环
项目
验证
作用
内容
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
防水防腐蚀服务器
数据库审计拓扑
杭州市一手淘网络技术有限公司
计算机网络技术 基础篇
笔记本可以当作服务器显示器吗
手机卡一直显示服务器在启动
河南服务器负载均衡品牌云空间
golang使用服务器代理
现在学习软件开发还有前途么
软件开发 api是什么
数据库的密码有效期怎么查
网络安全手抄报内容图片
李彦宏谈网络安全教育
网络技术学习合同
imap服务器地址
浪潮服务器哪个行业做的最好
工程网络技术规程pdf
网络技术有限公司全国排名
网络安全法 的说法正确的有
kms服务器搭建管理
网络安全培训有哪些内容
2018网络安全试卷6答案
控制软件联网的软件开发
网络安全是发展新基建
万荣网络安全吗
数据库三级模型结构分别是什么
金融软件开发公司招部门助理
湖北口碑好服务器机柜虚拟主机
软件开发人员需要哪些操作系统
r820服务器硬盘是几寸的