主题 : unlink 和move_uploaded_file 一起无法更新文件
级别: 风云使者
UID: 3
精华: 1
发帖: 5638
威望: 2372 点
铜币: 5665 枚
贡献值: 0 点
好评度: 0 点
在线时间: 5714(时)
注册时间: 2010-06-13
最后登录: 2020-06-16
0楼  发表于: 2020-06-10 18:17

unlink 和move_uploaded_file 一起无法更新文件

在webERP里有个显示产品图片的功能。可是这个功能在更新了图片的时候,确无法更新。而新上载图片的时候,确完全没有这个问题。 开始以为是unlink无法删除文件。 可是,那个unlink的返回结果确一直显示文件被删除。后来不得不试试move_uploaded_fie, 使用新文件名称的时候,这个文件也被好好地上传了。 那就说明这两个函数都没有问题。 可是当显示href链接时,以前的图片确实可以正常显示。 
这个坑在于,浏览器缓存了这个图片,所以使用href, 这个图片还会正常显示。
为了解决这个问题,把href的链接进行更新:
<a href="path/to/pic?RandomStr()">my picture</a>
RandomStr() 是自定义的一个产生随机数的函数。 其实使用date('U') 也可以。[color=var(--blue-800)]
function generateRandomString($length = 10) {  
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
 $charactersLength = strlen($characters);    
$randomString = ''; for ($i = 0; $i < $length; $i++) {      
$randomString .= $characters[rand(0, $charactersLength - 1)]; 
}
return $randomString;
}