上传期间重命名图像

时间:2013-04-17 20:15:02

标签: php

我目前想要使用w3schools图片上传代码,直到我找到一段时间我编码的那个。无论如何:

<?php
 $allowedExts = array("gif", "jpeg", "jpg", "png");
 $extension = end(explode(".", $_FILES["file"]["name"]));
 if ((($_FILES["file"]["type"] == "image/gif")
 || ($_FILES["file"]["type"] == "image/jpeg")
 || ($_FILES["file"]["type"] == "image/jpg")
 || ($_FILES["file"]["type"] == "image/png"))
 && ($_FILES["file"]["size"] < 20000)
 && 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("upload/" . $_FILES["file"]["name"]))
  {
  echo $_FILES["file"]["name"] . " already exists. ";
  }
else
  {
  move_uploaded_file($_FILES["file"]["tmp_name"],
  "upload/" . $_FILES["file"]["name"]);
  echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  }
}
 }
else
{
 echo "Invalid file";
 }
?>

基本上我想要发生的是当用户上传文件时,它将文件名重命名为$ username而不是原始名称,所以它只是username.png而不是我目前拥有的用户名-38474.png < / p>

任何帮助?

2 个答案:

答案 0 :(得分:8)

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);

这行代码基本上将图像重命名为新位置:"upload/".$_FILES["file"]["name"],因此请将此行替换为:

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$username.".".$extension);

答案 1 :(得分:0)

所以只需将不同的参数传递给move_uploaded_file

$extension = explode("/", $_FILES["file"]["type"]);  //Use proper mime type here, $_FILES contents can be faked by remote user
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $username.".".$extension[1]);