ThinkPHP中上传文件如何解决重复问题

 我来答
小菜资源库
2018-06-26 · 分享互联网相关的知识技能和免费软件教程!
小菜资源库
采纳数:242 获赞数:1814

向TA提问 私信TA
展开全部

重复上传问题其实很好解决,下面提供两个简单的思路,请按需求选取。

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,将新的文件路径提交
更新。

以上就是两种处理图片重复的问题,希望能够帮助到你。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式