需求是这样的:添加信息时可以上传图片,图片是上传到一个图片服务器上。
待解决的问题:1 如果该信息不保存,上传的图片如何删除?
2 添加一条信息时上传了多个图片文件,其实只有一个是有效的,如何记录无用的图片,并且将其删除?
3 编辑信息时也如此?
不知我说明白了没有,求高手支招。
------解决思路----------------------
如果有多长图片先选出适合的那张,等确认要保存信息或者保存成功后再上传图片,
------解决思路----------------------
1、第一个问题,可以写个定时任务去做这件事(当在数据库找不到和这个图片关联的信息,就删除掉)
2、第二个问题,这个和你业务有关,既然你允许上传多张,又说只有一个有限,这个不是有点矛盾
以上之代表个人观点,楼主可以讲讲具体的业务场景
------解决思路----------------------
那还是一样的
针对一条记录
比如场景是新增,这个时候像你说的我们也可能上传多张图片,只要我们没有保存,那么这些图片实际上都上无用的
只有我们点击保存了(最后一次上传的那张才是有效的),那么这个图片才是我们想要的
这个时候磁盘上可能有多个文件(包括那个有用的图片)
比如 上传的图片依次为1.jpg、2.jpg、3.jpg、4.jpg
然后我们库里面存的就是4.jpg,那么其它三个就是无效的,我们定时任务把3个图片删除了就可以了
反过来编辑也是一样
------解决思路----------------------
我也只是提供一个方案,性能方面这个要根据你数据量,隔多长时间删一次,扫描磁盘肯定是耗性能的
还有一种方法,你提供一个临时表,把你上传的图片先记录下来,然后等你保存(或者修改)完这条记录,再把其它无用的删除掉
------解决思路----------------------
你上传时肯定是数据库存有相应的信息对应这张图片的,你可以直接找到这张图在上传,当然这样的如果
上传失败那之前的也丢失了, 那就 先之前图片路径信息存到一个变量里面,新的上传成功了再删除之前的图片,
既然只有一张图片有效,那就尽量保证系统没有冗余的图片。如果你还需要加入一些找回以前的图片的功能,那你在设计数据库的
时候就设计成一对多。