求高手支招

a_b_a_b_a_b_a_b 2015-01-16 09:33:43
需求是这样的:添加信息时可以上传图片,图片是上传到一个图片服务器上。
待解决的问题:1 如果该信息不保存,上传的图片如何删除?
2 添加一条信息时上传了多个图片文件,其实只有一个是有效的,如何记录无用的图片,并且将其删除?
3 编辑信息时也如此?

不知我说明白了没有,求高手支招。
...全文
245 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_b_a_b_a_b_a_b 2015-01-17
  • 打赏
  • 举报
回复
自己的实现方式,各位高手看下如何: 1 上传时没上传一个附件将附件保存在session中; 2 保存信息时,将保存的信息中的附件与session比较,将保存的附件在session中清除;这样session中保存的全是无用的附件了; 3 页面刷新、跳转时,删除session中的附件,同时删除服务器上的附件、
a_b_a_b_a_b_a_b 2015-01-16
  • 打赏
  • 举报
回复
继续招募方案。
a_b_a_b_a_b_a_b 2015-01-16
  • 打赏
  • 举报
回复
引用 6 楼 shixitong 的回复:
我也只是提供一个方案,性能方面这个要根据你数据量,隔多长时间删一次,扫描磁盘肯定是耗性能的 还有一种方法,你提供一个临时表,把你上传的图片先记录下来,然后等你保存(或者修改)完这条记录,再把其它无用的删除掉
这个方案看似可行,这也是我想的一个方案。
shixitong 2015-01-16
  • 打赏
  • 举报
回复
引用
定时删除? 那样的话是不是需要扫描磁盘文件与数据库数据进行对比啊,信息模块多的话还要一个一个模块的对比?性能方面怎么控制呢???
我也只是提供一个方案,性能方面这个要根据你数据量,隔多长时间删一次,扫描磁盘肯定是耗性能的 还有一种方法,你提供一个临时表,把你上传的图片先记录下来,然后等你保存(或者修改)完这条记录,再把其它无用的删除掉
a_b_a_b_a_b_a_b 2015-01-16
  • 打赏
  • 举报
回复
引用 4 楼 shixitong 的回复:
[quote=引用 3 楼 a_b_a_b_a_b_a_b 的回复:] 是有个上传图片的按钮,可以重复传,例如我上传了一张,发现这张不对,我在点击图片上传重新上传一张,这样以前上传的那张就无用了; 再有就是我编辑信息呢,上传了一张图片,没有点击保存信息的按钮,那么这张图片也是无用的; 这两种情况下的无用图片怎么删除呢、
那还是一样的 针对一条记录 比如场景是新增,这个时候像你说的我们也可能上传多张图片,只要我们没有保存,那么这些图片实际上都上无用的 只有我们点击保存了(最后一次上传的那张才是有效的),那么这个图片才是我们想要的 这个时候磁盘上可能有多个文件(包括那个有用的图片) 比如 上传的图片依次为1.jpg、2.jpg、3.jpg、4.jpg 然后我们库里面存的就是4.jpg,那么其它三个就是无效的,我们定时任务把3个图片删除了就可以了 反过来编辑也是一样[/quote] 定时删除? 那样的话是不是需要扫描磁盘文件与数据库数据进行对比啊,信息模块多的话还要一个一个模块的对比?性能方面怎么控制呢???
shixitong 2015-01-16
  • 打赏
  • 举报
回复
引用 3 楼 a_b_a_b_a_b_a_b 的回复:
是有个上传图片的按钮,可以重复传,例如我上传了一张,发现这张不对,我在点击图片上传重新上传一张,这样以前上传的那张就无用了; 再有就是我编辑信息呢,上传了一张图片,没有点击保存信息的按钮,那么这张图片也是无用的; 这两种情况下的无用图片怎么删除呢、
那还是一样的 针对一条记录 比如场景是新增,这个时候像你说的我们也可能上传多张图片,只要我们没有保存,那么这些图片实际上都上无用的 只有我们点击保存了(最后一次上传的那张才是有效的),那么这个图片才是我们想要的 这个时候磁盘上可能有多个文件(包括那个有用的图片) 比如 上传的图片依次为1.jpg、2.jpg、3.jpg、4.jpg 然后我们库里面存的就是4.jpg,那么其它三个就是无效的,我们定时任务把3个图片删除了就可以了 反过来编辑也是一样
a_b_a_b_a_b_a_b 2015-01-16
  • 打赏
  • 举报
回复
是有个上传图片的按钮,可以重复传,例如我上传了一张,发现这张不对,我在点击图片上传重新上传一张,这样以前上传的那张就无用了; 再有就是我编辑信息呢,上传了一张图片,没有点击保存信息的按钮,那么这张图片也是无用的; 这两种情况下的无用图片怎么删除呢、
shixitong 2015-01-16
  • 打赏
  • 举报
回复
1、第一个问题,可以写个定时任务去做这件事(当在数据库找不到和这个图片关联的信息,就删除掉) 2、第二个问题,这个和你业务有关,既然你允许上传多张,又说只有一个有限,这个不是有点矛盾 以上之代表个人观点,楼主可以讲讲具体的业务场景
whos2002110 2015-01-16
  • 打赏
  • 举报
回复
如果有多长图片先选出适合的那张,等确认要保存信息或者保存成功后再上传图片,
wasdasdfqwer 2015-01-16
  • 打赏
  • 举报
回复
引用 3 楼 a_b_a_b_a_b_a_b 的回复:
是有个上传图片的按钮,可以重复传,例如我上传了一张,发现这张不对,我在点击图片上传重新上传一张,这样以前上传的那张就无用了; 再有就是我编辑信息呢,上传了一张图片,没有点击保存信息的按钮,那么这张图片也是无用的; 这两种情况下的无用图片怎么删除呢、
你上传时肯定是数据库存有相应的信息对应这张图片的,你可以直接找到这张图在上传,当然这样的如果 上传失败那之前的也丢失了, 那就 先之前图片路径信息存到一个变量里面,新的上传成功了再删除之前的图片, 既然只有一张图片有效,那就尽量保证系统没有冗余的图片。如果你还需要加入一些找回以前的图片的功能,那你在设计数据库的 时候就设计成一对多。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧