上传图片预览思路问题

分一共就9分,系统提示只能5分,对不住大牛们了啊。 :x

小弟最近在做上传文件预览功能,使用技术为struts2,遇到的问题如下:

1、背景:维修报告有多个维修图片,维修图片在保存维修报告主信息时可以预览,维修图片保存的路径为--维修报告ID / phone / 文件名(时间戳文件名)

2、需求:用户需要在保存维修报告主信息之前预览已上传图片。

3、自己的解决方式以及遇到问题:
3.1、
方式:用户保存主信息前,不允许用户上传图片,用户修改维修报告主信息的时候,可以上传图片,系统将图片保存到服务器后,可以预览。
遇到问题:缺点是不能一并保存。
3.2、
方式:用户添加图片后,保存在临时文件夹中,等待用户保存维修报告主信息后,将临时文件夹中的图片文件移动到 上面背景中指定的目录中或者将临时文件夹的名称修改为 维修报告的ID。
遇到问题:如果用户突然关闭浏览器或者人为无法控制的故障原因,系统针对临时图片文件的处理问题;如果临时文件夹为同一个名字,那么就涉及到多个用户同时操作一个文件夹的并发额外难题,如果临时文件夹为不同名字,我改如何处理图片文件的清理和修改文件夹名字呢?
3.3、
方式:利用jquery预览图片。
遇到问题:由于现在主流浏览器由于出去安全性考虑,不能通过jquery得到file控件的文件的全路径,所以此种方式,按照网上找的很难大都很难兼容。

4、大牛们帮忙看看小弟的问题啊。谢谢。

1个回答

这个问题经常会遇到,可以这样:
1、做一个临时维修报告表,将用户提交的数据保存到这张表 且 图片和其关联
2、当用户确认提交时,拷贝到主表
3、当用户取消/关闭浏览器(此时数据丢了):
3.1、使用cookie保存上次编辑的ID
3.2、定期删除临时表的数据(比如1个月)

jinnianshilongnian
jinnianshilongnian 1、临时表的保存,是利用轮询的方式实现的么? 一种策略就是定时保存;还一种就是用户一上传就保存 2、定期删除临时表信息,也可能会给此时操作的用户带来麻烦,比如用户正在操作此表,可以利用忽略10%的情况来适应90%的情况么? 做个定时任务即可,比如每个月月末清理上个月的【每天晚上2点(基本上不会有问题)】
接近 8 年之前 回复
javaStudyeye
javaStudyeye 谢谢。从目前的情况来看,只能采用 "预存储 + 定时清理数据" 的方式 实现了。就回答内容,我依然有几个问题: 1、临时表的保存,是利用轮询的方式实现的么? 2、定期删除临时表信息,也可能会给此时操作的用户带来麻烦,比如用户正在操作此表,可以利用忽略10%的情况来适应90%的情况么? 我的想法: 1、不采用临时表的情况下:用户依然一次性保存维修报告内容,上传文件保存在客户端利用UUID指定cookie的key指定的cookie中,同时设置其两个小时内失效,这样既可以实现预览又可以实现一次请提交和数据清理。可以么? 2、采用临时表的情况下:就按照大牛所说的做了。
接近 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐