Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用预设文件名上载PHP文件_Php_File_Upload - Fatal编程技术网

使用预设文件名上载PHP文件

使用预设文件名上载PHP文件,php,file,upload,Php,File,Upload,我想知道是否有人能帮我解决这个问题。我希望能够用PHP将图片上传到用户主管,但我希望它将默认名称更改为avatar.whatever。以下是我到目前为止所拥有的代码,它只是w3schools版本的一个轻微修改: <?php session_start(); $allowedExts = array("gif", "jpeg", "jpg", "png"); $extension = end(explode(".", $_FILES["avatar"]["name"])); if ((($

我想知道是否有人能帮我解决这个问题。我希望能够用PHP将图片上传到用户主管,但我希望它将默认名称更改为avatar.whatever。以下是我到目前为止所拥有的代码,它只是w3schools版本的一个轻微修改:

<?php
session_start();

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

    $home_dir = "users/" . $_SESSION["user"] . "/";

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

form部分工作得很好,我将不再使用if语句来检查文件是否已经存在,并且输出量不多,但是有人能帮我弄清楚如何设置预定义的文件名吗。用户将能够选择一个图片文件,然后它将上传到他们的目录。谢谢你

这句话:

move_uploaded_file($_FILES["avatar"]["tmp_name"],$home_dir . $_FILES["avatar"]["name"]);
将使用第二个参数重命名文件:

move_uploaded_file($_FILES["avatar"]["tmp_name"],"/path/to/image_predefined_name.jpg");

将使用名称image\u prefined\u name.jpg保存该文件。

移动上传的文件()函数(位于代码末尾)接受两个参数:文件的临时位置和名称,以及所需的位置和名称。目前,您正在执行以下操作:

 move_uploaded_file($_FILES["avatar"]["tmp_name"],$home_dir . $_FILES["avatar"]["name"]);
 echo "Stored in: " . "upload/" . $_FILES["avatar"]["name"];

它存储名为
$\u FILES[“avatar”][“name”]
(用户的文件名)的文件。只需将其替换为您想要的名称:
$home\u dir。“我想要的名字。随便什么”

谢谢!解释得非常好。