2016-01-28 193 views
1

每當我上傳任何文件它說,PHP上傳失敗

文件是圖像 - 圖像/ png.Sorry,上傳您的文件時出現錯誤。

我正在使用post方法和enctype =「multipart/form-data」。我的圖像文件也是適當的。

<?php 
    if(isset($_POST['submit'])){ 
    $target_dir = "pics/"; 
     $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
     $uploadOk = 1; 
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
     // Check if image file is a actual image or fake image 
     if(isset($_POST["submit"])) { 
      $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
      if($check !== false) { 
       echo "File is an image - " . $check["mime"] . "."; 
       $uploadOk = 1; 
      } else { 
       echo "File is not an image."; 
       $uploadOk = 0; 
      } 
     } 
     // Check if file already exists 
     if (file_exists($target_file)) { 
      echo "Sorry, file already exists."; 
      $uploadOk = 0; 
     } 
     // Check file size 
     if ($_FILES["fileToUpload"]["size"] > 500000) { 
      echo "Sorry, your file is too large."; 
      $uploadOk = 0; 
     } 
     // Allow certain file formats 
     if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
     && $imageFileType != "gif") { 
      echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
      $uploadOk = 0; 
     } 
     // Check if $uploadOk is set to 0 by an error 
     if ($uploadOk == 0) { 
      echo "Sorry, your file was not uploaded."; 
     // if everything is ok, try to upload file 
     } else { 
      if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
       echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
      } else { 
       echo "Sorry, there was an error uploading your file."; 
      } 
     } 
    } 
?> 





<form action="" method="post" enctype="multipart/form-data"> 
      <div class="row"> 
       <div class="col-md-6"> 
       <div class="form-group"> 
        <label for="usr">Select image to upload:</label> 
        <input type="file" name="fileToUpload" id="fileToUpload"> 
       </div> 
       <div class="form-group"> 
        <label for="usr">URL:</label> 
        <input type="text" class="form-control" id="usr" name="url"> 
       </div> 
       </div> 
      </div> 
      <button type="submit" name="submit" class="btn btn-success">Add</button> 
      <button type="reset" class="btn btn-warning">Reset</button> 
      </form> 
+4

看起來像通用的W3Schools代碼http://www.w3schools.com/php/php_file_upload.asp我不能在這裏看到失敗,除非有什麼事情你沒有做好,比如改變表單中的內容,或者檢查你想上傳到的文件夾是否有適當的權限寫入它。檢查錯誤http://php.net/manual/en/function.error-reporting.php –

+0

已添加表單代碼 –

回答

1

您的文件無法移動。

  • 檢查路徑移動到
  • 檢查目錄的權限
  • 檢查與tmp目錄

您使用相對路徑的訪問權限:$target_dir = "pics/";

更改路徑爲:

$target_dir = $_SERVER['DOCUMENT_ROOT'] . '/pics/'; 
+0

路徑無誤。我已經給了那個upload.php文件777個訪問權限,甚至嘗試了'$ target_dir = $ _SERVER ['DOCUMENT_ROOT']。 '/ pics /';'。但它仍然不起作用。 –