我在MySql中有一个存储 userdata 的表,以及将图片(LOAD_FILE())存储为 BLOB 的其他信息即可。我从用户处获取图像检查其格式,然后使用move_uploaded_file()将其重命名为 session_id()并在表中插入信息。
我的问题: session_id()对于访问此网站的不同设备上的所有活动会话都是唯一的,这样我的图片就不会被覆盖。
如果没有,是否有更好的方法来实现这一目标?
我问的是这个问题,因为这个网站将来可能会被许多客户同时使用,防止错误发生会更好。
Php版本:5.5.14
<?php
//rest of code
if($ext){
$_SESSION["image"] = session_id().".".$ext;
move_uploaded_file($_FILES['Pro_imgInp']['tmp_name'],$_SESSION["image"]);
echo "Uploaded image: ". $_SESSION["image"] . "<br>";
$_SESSION['ext'] = $ext;
}
//rest of code
?>
&#13;
答案 0 :(得分:2)
将图像存储在数据库中效率很低。将它们存储在文件系统中并写入数据库的路径。
对于您的问题:即使碰撞的概率非常低,也不能保证会话ID在服务器上的任何时刻都是唯一的。
可以肯定的是,可以使用之前存在的ID进行会话。因此,会话ID命名的图像不应该比会话本身更长寿。