.I使用php创建了一个图片上传表单,图片将被上传到服务器目录文件夹中,并在数据库中显示图片的名称。因此,当我必须使用图像并在浏览器中调用它时,我将只使用select语句从数据库中检索图像。我还包含了一个限制代码,如果用户上传同名的图像,则会提示错误消息,并且名称不会保存在数据库中。
我想要做的是添加一个重命名功能,图像将在保存到目录之前被重命名。有人能在这方面指导我正确的方法吗?提前感谢!
发布于 2011-03-20 07:45:01
我发现的最简单的方法是使用time()函数在所有文件名上添加前缀。我已经使用它很多年了,没有重写问题。
示例:move_uploaded_file($_FILES['name']['tmp'], time() . "_{$newfilename}");
发布于 2011-03-20 07:48:24
您需要使用PHP的uniqid函数,它可以生成唯一的ids来实现这种目的:
$imgname = uniqid("img_",true) . ".jpg";发布于 2011-03-20 07:53:43
我经常将图像重命名为随机的文件名,这是唯一的,并且通常不会与其他图像名称冲突。然后,如您所说,将随机文件名与人类友好的名称/标题一起保存在数据库中(例如,“我的假日Pic")。使用图像ID的简单查询将获得文件名和人类友好的名称。
在上传图像时使用如下代码来创建唯一的文件名:
var $original_filename = 'my_image.jpg';
var $folder = '/test/images/';
var $file_extension = pathinfo($original_filename, PATHINFO_EXTENSION);
do {
$filename = substr(sha1(mt_rand().time()), 0, 10).$file_extension;
} while (is_file($folder.$filename));
// New, Unique Filename Ready
echo $filename;或者,您也可以按照fredley的建议,替换创建文件名的行,并使用"uniqid“。
https://stackoverflow.com/questions/5365711
复制相似问题