PHP+MYSQL:错误move_uploaded_file()无法移动

PHP+MYSQL: error move_uploaded_file() unable to move

我被困在一个地方,我有一个文件上传 php 文件,但是当我想上传图片时,我遇到了错误:
"Warning: move_uploaded_file(): failed to open stream: No such file or directory.." 和
"Warning: move_uploaded_file(): Unable to move 'C:\wamp\tmp\php7E6D.tmp' to 'site/images/UBI30_Giveaway_box_CARDS_1.jpg'.. "
我的上传 php 看起来像这样:

//Image datas
$target_dir = "site/images/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Submint button pressed?
if(isset($_POST['submit'])){
  $nev=$_POST['nev'];
  $about=$_POST['about'];
  $image=$_FILES["fileToUpload"]["name"];
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);

// Does it image?
      if($check !== false) {
          echo "File is an image - " . $check["mime"] . ".";
          $uploadOk = 1;
      } else {
          echo "File is not an image.";
          $uploadOk = 0;
      }

//Recently the image is uploaded?
      if (file_exists($target_file)) {
      echo "Sajnáljuk, ez már egy feltöltött fájl..";
      $uploadOk = 0;
      }

//If everything okay, upload.
      if ($uploadOk == 0) {
      echo "Sajnáljuk a kép nem került feltöltésre..";
      } else {
          if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
              echo "A ". basename( $_FILES["fileToUpload"]["name"]). " feltöltve.";
          } else {
              echo "Sajnáljuk, hiba történt a kép feltöltése közben.";
          }
      }
  }
// Upload datas to db.
  $stmt = $db->prepare("INSERT INTO `jelolt`(`name`, `about`, `image`) VALUES ('$nev','$about','$image')");
    $stmt->execute();
// A lekérdezés helyes futásának ellenörzése.
      if (!$stmt) {
        print_r($db->errorInfo());
      }  

我希望你们比我聪明,我只是在 3 小时前没有发现我的错误。

UPDATE$target_dir = getcwd(); 修改此开始工作但没有放置正确的文件夹,如果我更改 url 我遇到了同样的问题。我需要在 getcwd() 之后附加 /views/site/image url 但当然它对我不起作用:$target_dir = getcwd()."views/site/image";

我没有靠近我的工具来测试这个,但从眼睛的角度来看,你似乎移动了图像大小响应而不是文件。

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {

大概应该是:

if (move_uploaded_file($_FILES["fileToUpload"]["name"], $target_file)) {

我目前看不到其他任何东西,除了那里混杂的变量。您上传的文件似乎在 "name" 而不是 "tmp_name"。如果我在工作站时没有人想出答案,我将 运行 通过测试。

getcwd() returns 您当前的工作目录。如果向其中添加 views/site/image ,您将获得页面所在的文件夹+您期望的路径。最后还需要一个斜杠,例如 views/site/image。如果您的页面不在根文件夹中并且假设这是您当前的情况是相当安全的,例如,这是一个名为 foo/bar 的页面,那么您的文件将被尝试上传到 foo 文件夹,但是,您的 views 文件夹可能位于您的网络根目录中。所以你需要定义相对于root的位置,像这样:dirname(__FILE__)."views/site/image/".$yourfilename。确保您拥有路径中所有文件夹的必要权限。