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

时间:2017-04-15 09:13:23

标签: php mysql image file-upload image-upload

我被困在一个地方,我有一个文件上传php文件,但当我想上传图片时,我有错误调用:
"警告:move_uploaded_file():无法打开流:没有这样的文件或目录.."和
"警告:move_uploaded_file():无法移动' C:\ wamp \ tmp \ php7E6D.tmp'到' 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小时前找不到我的错误。

更新$target_dir = getcwd();修改此启动工作但未放入正确的文件夹,如果我更改了网址,我遇到了同样的问题。我需要在getcwd()之后附加/ views / site / image网址,但是我没有为我工作:$target_dir = getcwd()."views/site/image";

2 个答案:

答案 0 :(得分:0)

我并不接近我测试它的工具,但从eyelevel来看,似乎你移动了imagesize响应而不是文件。

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

应该是:

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

此刻我无法看到任何其他内容,除了混在那里的变量。您的上传文件似乎在" name"不是" tmp_name"。如果我在我的工作站时没有人提出答案,我将通过测试来运行。

答案 1 :(得分:0)

getcwd()返回您当前的工作目录。如果您向其添加v iews/site/image,您将获得您的网页所在的文件夹+您期望的路径。你最后也需要一个斜杠,比如views/site/image。如果您的页面不在根文件夹中,并且将此视为当前案例是相当安全的,例如,这是一个名为foo/bar的页面,那么您的文件将尝试上传到{{1但是,您的foo文件夹可能位于您的Web根目录中。因此,您需要定义与root相比较的位置,如下所示:views。确保您拥有路径中所有文件夹的必要权限。