在web开发中,经常要在页面中嵌入(fckeditor等)html编辑器,如果在提交的文本中插入图片一般都是先上传到服务器,再在文本域中插入类似<img src="xxx.jpg">标签用于显示图片,有一种情况,比如用户觉得某张图片不合适,不想要了,会在文本域中删除那张图片(直接backspace键),但他其实是删除了那个<img src="xxx.jpg">链接,然后提交了表单,那么这张被删除的图片本身还留在服务器上,只是并未被引用,那么怎么请这种无效的图片呢?请看好,不是说删除文章是,级联删除文章关联的图片那种情况!!!看了网上的几种方案,(注,此时数据库表里对上传的图片有url记录)1.在上传的请求提交后,在某个类对上传的文本内容进行正则(或html树解析),找出所有图片链接<img src="xxx.jpg">的src值,同时取出和这个内容关联的所有图片的url记录,进行比对删除.2.在上传时不予处理,而在服务器负载较低时,启动定时任务进行处理,也是采用进行正则(或html树解析)的方法.各位谁有更高效的方法吗?

解决方案 »

  1.   

    做个Cache 啊
    用户没提交确认前, 
    打个时间戳,图片放到Cache里,过期删除
      

  2.   

    图片引用时,服务器端得到那个文件的引用,读出流内容,保存在session中,并删除服务器端上的文件,在删除的时候,服务器端得到删除指令,将session中的流内容删除即可
      

  3.   

    上面的也没仔细看,是在html编辑器中的表单内容,
    删的时候是删了链接文本,文件实际还在.
    目前不检索表单域,文件的引用服务器根本不知道.