【发布时间】:2016-10-07 00:59:14
【问题描述】:
您好,我有以下代码。我正在尝试使用 tempnam 函数上传具有唯一名称的图像。
$upfile = tempnam('client_images', '');
unlink($upfile);
//move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile);
if($_FILES["userfile"]["type"] != "image/gif" && $_FILES["userfile"]["type"] != "image/pjpeg" && $_FILES["userfile"]["type"] != "image/png" && $_FILES["userfile"]["type"] != "image/jpeg")
{
echo "ERROR: You may only upload .jpg or .gif or .png files";
}
else
{
if(!move_uploaded_file($_FILES["userfile"]["tmp_name"],$upfile))
{
echo "ERROR: Could Not Move File into Directory";
}
else
{
echo "Temporary File Name: " .$_FILES["userfile"]["tmp_name"]."<br />";
echo "File Name: " .$_FILES["userfile"]["name"]."<br />";
echo "File Size: " .$_FILES["userfile"]["size"]."<br />";
echo "File Type: " .$_FILES["userfile"]["type"]."<br />";
}
}
?>
但是由于某种原因,我在client_images 文件夹中看不到这些图像。
输出如下:
Temporary File Name: C:\Windows\Temp\phpA9F3.tmp
File Name: client.png
为什么 Temp 将其保存为 .tmp 而不是 .png?
我可能做错了什么?
【问题讨论】:
-
您在服务器上真的有一个名为
/client_images的root 文件夹吗?我猜不是。 -
哦,你说得对,但它仍然存储为 .tmp,如何将其保存为 jpg?
-
我刚刚删除了 / 现在它保存到了正确的文件夹中! :) 但不是作为图像文件
-
tempnam创建 .tmp 文件。这是设计使然。它用于生成...临时文件名。 -
在stackoverflow上有这么多个关于使用PHP上传文件和生成唯一文件名的答案。这里只是一个:stackoverflow.com/questions/460164/…
标签: php file-upload upload