Php Can';我不理解这些来自图像上传表单的错误

Php Can';我不理解这些来自图像上传表单的错误,php,file-upload,Php,File Upload,我有这样的错误: imagecopyresampled()要求参数2是资源,字符串在C:\xampp\htdocs file\u put\u contents()中给出:提供的资源在C:\xampp\htdocs中不是有效的流资源 <?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "im

我有这样的错误: imagecopyresampled()要求参数2是资源,字符串在C:\xampp\htdocs file\u put\u contents()中给出:提供的资源在C:\xampp\htdocs中不是有效的流资源

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 80000))
  {
if($_FILES["file"]["error"]>0)
    {
        echo "Error:".$_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 "Stored in: " . $_FILES["file"]["tmp_name"];
          $tmp=$_FILES["file"]["tmp_name"];

     if (file_exists("images/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
        $image = file_get_contents($tmp);
        $new_image = imagecreatetruecolor(200, 200);
        imagecopyresampled($new_image, $image, 0, 0, 0, 0, 200, 200, imagesx($image), imagesy($image));
        file_put_contents($image, $new_image);
        move_uploaded_file($_FILES["file"]["tmp_name"],
        "images/" . $_FILES["file"]["name"]);
        echo "Stored in: " . "images/" . $_FILES["file"]["name"];
      }
  }
  }
  else
  {
      echo"Invalid file";
  }
?>

更改此行:

$image = file_get_contents($tmp);
致:


imagecopyresampled
希望第二个参数是GD图像资源,而不是作为
文件获取内容的结果的字符串。使用
imagecreatefromstring
将图像的字符串表示形式转换为图像资源。

file\u put\u contents()希望参数1是字符串,即C:\xampp\htdocs中给定的资源。……现在我得到了这个错误。
imagecreatefromjpeg($tmp)
(或类似)不会容易得多(及more@tdammers,
imagecreatefromstring
使加载文件类型独立,您可以用一个表达式加载.PNG、.GIF、.JPG文件等。@Birju,使用
imagejpeg()
要保存图像,还需要阅读一些关于PHP中图像操作的教程。@Tatu Ulmanen:它还需要将整个文件加载到一个PHP字符串中,然后将该字符串传递回GD。这不需要太多开销,但只要给GD一个文件名并让它执行操作,可能会更有效,前提是您事先知道文件类型和。
$image = imagecreatefromstring(file_get_contents($tmp));