我试图在上传后重命名图片。 我希望它是一个独特的名字。
我有这门课程(在互联网上找到):
我尝试像这样编辑文件:
$upload_image = $target_path.basename($fileName);
到
$upload_image = $target_path.basename(uniqid($fileName, rand()));
但它只给我一个文件,没有扩展名。
答案 0 :(得分:0)
还应该发生什么? <book>
会生成以下内容:
uniqid
您没有获得扩展名,因为您将文件的扩展名转换为文件名“中间”的一部分。
也许这样的事情会更好:
php > echo uniqid('kittens.jpg', rand());
kittens.jpg57b72004c1a470.87520799
php > echo basename(uniqid('kittens.jpg', rand()));
kittens.jpg57b7201cdce2e9.40812361
答案 1 :(得分:0)
在您提供的图书馆的第26行,有一个名为$file_ext
的变量,其中包含您需要的内容。只需将其连接到$upload_image
,所以第32行变为:
$upload_image = $target_path.basename(uniqid($fileName, rand())).$file_ext;
即使如here所述,我也会以这种方式获得扩展:
$path = $_FILES['image']['name'];
$file_ext = pathinfo($path, PATHINFO_EXTENSION);
因为如果文件名是test.tar.gz
,则只需.gz
作为扩展名。
如果您想使用此方法,可以使用上面的代码替换第22-24行。