2016-01-28 150 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 /';'。但它仍然不起作用。 –