在java中,对文件(例如图片)进行操作,包括上传、修改、删除
一,文件上传
1.文件传到哪里,不仅可以保存在数据库中,也可以上传到远程服务器,文件保存的是文件的路径
2.文件上传都需要做什么?写那些代码能够实现
流程:
1.springmvc中,要实现上传文件要添加jar包,可以在maven官网找到
2.需要在spring的配置文件中添加bean,这里的bean的id一定要使用multipartResolver
3.我们要修改上传文件的form的表单
第一:添加代码enctype="multipart/form-data"
第二:使用post方式提交表单
第三:在表单中给file文件起name 要与dto中属性要一致, dto:继承了数据库表对应的javabean,是与页面相对应的一个javabean,可以根据需要 添加一些属性 MultipartFile:Spring提供的一个文件上传的组件
4.利用jquery/javascript提交表单,js代码:
6.后台Service中的操作
1.获取到上传文件的名称 系统时间+文件名 2.构造一个file对象,上传到本地服务其的路径
3.判断文件夹是否存在,如不存在则创建一个文件夹 4.将文件上传到服务器,将文件名保存到数据库 实现代码如下:
二、文件(图片)删除
删除时不仅仅要删除数据库中的数据,还要将保存到服务器的文件删除
首先要明白一点:保存到服务器的文件和保存到数据库的文件,是这样的 服务器:路径:文件夹路径+文件名 数据库:文件名
所以要想删除掉服务器的文件,要先根据id查询到数据库中对应的文件名,文件夹的路径是我们配置好的,有了文件对应的路径后,然后根据路径创建File对象,直接调用delete方法即可删除保存在服务器的文件。实现代码如下:
三、文件修改
在update修改操作时,要清楚的是需要服务器中文件的操作是:先删除,在添加。
具体操作代码:
我们可以对添加和删除操作进行封装,可以减少重复代码,如上图的save、delete方法都是封封装后的;封装如下: