首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上载到目录前重命名镜像

问上载到目录前重命名镜像
EN

Stack Overflow用户
提问于 2011-03-20 07:40:07
回答 4查看 6.4K关注 0票数 1

.I使用php创建了一个图片上传表单,图片将被上传到服务器目录文件夹中,并在数据库中显示图片的名称。因此,当我必须使用图像并在浏览器中调用它时,我将只使用select语句从数据库中检索图像。我还包含了一个限制代码,如果用户上传同名的图像,则会提示错误消息,并且名称不会保存在数据库中。

我想要做的是添加一个重命名功能,图像将在保存到目录之前被重命名。有人能在这方面指导我正确的方法吗?提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-20 07:45:01

我发现的最简单的方法是使用time()函数在所有文件名上添加前缀。我已经使用它很多年了,没有重写问题。

示例:move_uploaded_file($_FILES['name']['tmp'], time() . "_{$newfilename}");

票数 4
EN

Stack Overflow用户

发布于 2011-03-20 07:48:24

您需要使用PHP的uniqid函数,它可以生成唯一的ids来实现这种目的:

代码语言:javascript
复制
$imgname = uniqid("img_",true) . ".jpg";
票数 1
EN

Stack Overflow用户

发布于 2011-03-20 07:53:43

我经常将图像重命名为随机的文件名,这是唯一的,并且通常不会与其他图像名称冲突。然后,如您所说,将随机文件名与人类友好的名称/标题一起保存在数据库中(例如,“我的假日Pic")。使用图像ID的简单查询将获得文件名和人类友好的名称。

在上传图像时使用如下代码来创建唯一的文件名:

代码语言:javascript
复制
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“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5365711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档