ThinkPHP中上传文件如何解决重复问题
1个回答
展开全部
重复上传问题其实很好解决,下面提供两个简单的思路,请按需求选取。
1、简单的但风险比较大【适合新增操作,不适合修改操作】。可以使用命名规则进行判断是否已上传。
举个简单的例子,如上传的按钮name="file",那命名的时候就以这个字段来命名,
如:file-{$date}.png
$date=date('Y-m-d');//当天的日期
$fileimg = "file-{$date}.png";//上传的图片命名
这个方法虽然不是特别准确的覆盖,但是在一定程度上做到了覆盖。
如果你这个图片是不变的,类似logo类型的图片,那直接命名为logo.png,这样每次提交都会覆盖原来的图片,不会重复。
注意:这个覆盖操作会把原来的图片覆盖了,也就是没办法恢复原来的图片。
2、修改操作的时候,只有确定提交了才覆盖。
这个操作比较复杂一点,简单说说就是修改的时候,上传的图片命名规则跟方法1一样,也就是每次修改的图片重复覆盖,但是不覆盖原来的图片,用户确定提交后再删除原来的图片,将图片路径换为新上传的图片路径。流程图如下:
//用户修改信息
上传图片----上传图片命名:file_tmp.png----注意:这个图片命名跟原图片命名不同
多次重复上传修改---图片重复覆盖file_tmp.png
//用户最终确定上传图片
后台处理程序,获取图片的路径,unlink原来的图片路径(再次跟据修改的ID查询到图片路径,
进行删除),修改获取的图片命名rename将file_tmp.png改为file.png,将新的文件路径提交
更新。
以上就是两种处理图片重复的问题,希望能够帮助到你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询