在典型项目中,对于新界面,附件基本上存在并上传。 上传的类型有图像、文件、视频等。 当然,也可以删除不想上传的文件。 上载时,并不直接存储在数据库中。 因为上传文件时,存在不保存当前数据的问题。 这样,不需要的数据就会添加到附件中。
那我来说明一下:
必须更改事件以上传附件。 也就是说,单击添加的按钮将触发另一个file文件选择器选项卡上的事件
需要注意的是,不能遗漏enctype='multipart/form-data '的属性
然后,可以直接在触发file文件选择器的方法中编写代码。
首先,必须确定选定文件的长度是否大于0。 如果大于0,则声明加载层,使用from表单提交以上传附件,提交后关闭加载层。 代码如下图所示。
接下来,我将简要介绍多文件。
这是一个接口,从InputStreamSource继承,接口中封装了getInputStream方法,因此可以将其转换为输入流。
您可以接收使用多种请求方法上载文件的典型格式。
文件内容可以保存在内存中,也可以保存在磁盘的临时文件夹中,但在请求完成后会清除此临时存储。
将多文件作为参数传递时,可以通过将多文件声明为一个数组来支持多个文件传输。 如果只需要传输一个文件,可以删除数组。
因为我上传的文件没有直接存储在数据库中,所以可以将文件信息存储在Session中,避免刚才说的问题。
首先,必须创建一个接受相关文件中字段的实体类。 此外,还必须添加set和get方法,因为必须添加文件的唯一编码字段并删除每个文件信息。
实体类字段:
然后,必须确定enctype=“多部件/表单数据”是否存在。 如果存在,创建Session接收我的文件信息。 此外,还必须确定指定的Session中是否存在数据。 此外,还必须创建新的数组对象。 如果不为空,则将存在的数据添加到新数组对象中。
在这种情况下,必须生成上载临时文件夹的路径。 然后,检查临时文件夹的目录是否存在,如果不存在,则自动创建。 然后,判断MultipartFile接收的文件中是否存在数据,如果存在,则获取文件的文件名、文件扩展名。
必须根据文件扩展名确定文件是哪种类型的文件,并将文件名更改为当前时间,以避免文件名重复
然后,使用UUID生成公共唯一标识符。 这是在一台机器上生成的数字,确保对同时在空中的所有机器是唯一的,由16位数字组成和表示。 最后,使用set属性方法将我们获取的文件信息代入当前对象中。
最后,必须确定新数组对象是否为空。 如果不为空,则将当前对象添加到新数组对象,删除指定的Session,并将当前新数组对象的数据指定给新指定的Session。 然后,创建目标File类并将当前文件复制到指定的文件目录中。
效果图表: