Java开发 | SSM+Layui实现文件上传服务器

Java
作者:dulucy
发布时间:2025-05-13 23:12:32
Java开发 | SSM+Layui实现文件上传服务器

之前的项目涉及到图片上传的功能,基于bootstrap和SSM框架实现了该功能,这次在对项目进行Layui化过程中,需要将这个功能进行替换,以下记录Layui+SSM完成文件上传到服务器的操作。

效果图

image.png

image.png

前台html

image.png

①、设置img标签,设定id为‘demo1’;

②、p标签用于在上传失败的时候,显示重新上传按钮;

③、button按钮,设置id为‘test1’,后续监控该按钮。

前台JS文件

image.png

①、引入Layui.js文件;

②、引入Layui的upload模块;

image.png

①、elem绑定上传图片按钮的id——‘test1’;

②、accept设置接收的文件类型;

③、before预读文件,显示在网页上,需要注意的是不支持ie8,另外,result实际为图片的base64码

④、done为后台后台返回值,需要注意的是,后台返回来的需要是json格式的map(在Java代码会标记出来)

⑤、error为连接错误,实现重传操作。

Java实现上传文件必备jar包

image.png

commons-io.jar和commons-fileupload.jar为实现文件上传的必备jar,更高版本可去maven中央仓库查找。

配置文件设置

image.png

实现文件上传还需要在springmvc-config.xml中配置一下文件上传大小限定、字节码等

代码实现

image.png

  1. 使用MultipartFile来接收前台传过来的文件,记得设置@RequestParam("file")。其中file我没有找到关于它的说明,这个和bootstrap的文件上传有区别。

  2. 返回值需要使用第二个红框内的格式,当然其他的也可以,只要它符合json格式即可。

  3. 通过ImgUtil的imgToBase64将图片转化为byte[],调用insertImg方法到dao层,插入到数据库中。

image.png

image.png

①实体类中images接受的是图片转化的byte[],但是需要用Object来接受,方便类型转化。

数据库存储

image.png

我这里用的是SQL server2012,在数据库中直接用image类型来存放图片转化的byte[],其他的数据库使用的类型有差异,需要自行摸索。

文件上传存放方式

文件上传到服务器的存放方式拿图片来说,一般两种方式:

①、将图片上传的服务器上,存放到硬盘的某一个文件夹中,然后将路径存放到数据库中,需要访问图片的时候,直接获取路径即可。这种存放方式在读取时,需要给tomcat配置虚拟路径,指向该文件夹,否则无法正常访问到图片

②、将图片解析成byte[]字节码,直接存入到数据库中,读取的时候将字节码还原,返回前台即可显示。本篇文章的需求,考虑到一般上传的图片不大,使用不频繁,采用这种直接存入数据库的方式。