千家信息网

如何实现Maven项目web多图片上传及格式验证

发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,小编给大家分享一下如何实现Maven项目web多图片上传及格式验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先来展示一
千家信息网最后更新 2024年10月21日如何实现Maven项目web多图片上传及格式验证

小编给大家分享一下如何实现Maven项目web多图片上传及格式验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

先来展示一下效果

客户在添加的时候进入添加页面,需要上传文件时的相关页面及代码

:前端页面重要代码,multiple的作用是支持多图片上传,此处点击事件一定要使用onchange事件,切记不要误用onclick事件!!

注:标签的作用是以 delims 中的值分割循环遍历

以下为前端页面对应的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服务器硬盘是几寸的
0