1

所以我正在制作一个.gif 上传网站,这是我的“upload_file.php”代码。

        <?php
    $allowedExts = array("jpg", "jpeg", "gif", "png");
    $extension = end(explode(".", $_FILES["file"]["name"]));
    if ((($_FILES["file"]["type"] == "image/gif"))
    && ($_FILES["file"]["size"] < 5242880)
    && in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("i/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "i/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "i/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?> 

如何添加随机图像名称?最好只有 #0-9 的 6-8 位数字。这样图像名称就很简单,而不是特定于大写字母等。请尽可能具体地说明方向,因为我还在学习 PHP,这是我制作这个网站的主要原因之一。

PS 如果您能告诉我如何在没有显示文件信息的页面的情况下直接重定向到图像,则可以加分。

4

3 回答 3

1

**调用这个函数来生成你的文件名

function  makeFileName($size=6, $path="/", $extension=".gif"){
    //if you give a path, don't forget the slash at end

    $root = $_SERVER["DOCUMENT_ROOT"];        
    $name = rand(0, str_repeat(9, $size));
    $name = $root.$path.str_pad($name, 8,  0, STR_PAD_LEFT).$extension;
    while(is_file($name)){
        makeFileName();
    }
    return $path.$name; 
}
echo makeFileName();

//makeFileName(6, ".png") Will create a png file name with 6 digits

编辑 :

move_uploaded_file($_FILES["file"]["tmp_name"], makeFileName(6, "/your/dir/", ".png"));
于 2012-12-01T03:50:45.013 回答
1

根据上传时间随机命名如何?

20121130184908.jpeg

那就是我在 2012-11-30 18:49:08 写下 (utc-0800) 的那一刻

如果上传量很大,那么也许毫秒也应该包括在内。

于 2012-12-01T02:49:15.727 回答
0

你可以使用uniqid()我认为它会给你你所需要的

于 2012-12-01T03:49:31.077 回答