如果file_exists()为TRUE,则使用tempnam()给$ _FILES [" file"] [" name"]一个唯一的名称

时间:2014-04-13 17:33:15

标签: php

PHP新手在这里..

我正在尝试创建一个if语句,如果$_FILES["file"]["name"] 返回true,则会将$_FILES["file"]["name"]的名称更改为唯一的名称。

我的代码如下所示。我尝试使用file_exists(),但我不能100%确定如何使用PHP实现它。

file_exists()

有没有更好的方法来做到这一点,因为现在我只是得到一个php错误:

tempnam()

目录确实存在,因为上传表单适用于不具有相同名称的文件。

任何形式的帮助或指导都将不胜感激!

2 个答案:

答案 0 :(得分:1)

替换

  $_FILES["file"]["name"] = "image/tempnam('',newsFeed)";

使用

  $_FILES["file"]["name"] = "image/".tempnam('',"newsFeed");

http://www.php.net/manual/en/function.tempnam.php

答案 1 :(得分:0)

更改此

if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      $_FILES["file"]["name"] = "image/tempnam('',newsFeed)";//this is my problem
      $dialog = $_FILES["file"]["name"] . " already exists. ";
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      }

if (file_exists("upload/" . $_FILES["file"]["name"])) {
      $dialog = $_FILES["file"]["name"] . " already exists. ";
      move_uploaded_file($_FILES["file"]["tmp_name"], 
                         "upload/image/".tempnam('',newsFeed);
}