2016-05-04 39 views
1

我無法使用php在我的服務器上傳文件。問題是我找不到哪個是錯誤,或者我不知道怎麼看。順便說一下,我認爲是關於文件移動的事情。這是PHP代碼用php發送文件上傳移動文件

<!-- upload --> 
    <?php 
     if (isset($_FILES["myFile"])) { 
      $myFile = $_FILES["myFile"]; 
      // File prop 
      $myFileName = $myFile["name"]; 
      $myFileTmp = $myFile["tmp_name"]; 
      $myFileSize = $myFile["size"]; 
      $myFileError = $myFile["error"]; 

      //File extension 
      $myFileExt = explode(".", $myFileName); 
      $myFileExt = strtolower(end($myFileExt)); 
      $allowed = array ('png' , 'jpg' , 'txt'); 

      if(in_array($myFileExt, $allowed)) { 
       if($myFileError === 0) { 
        $newFileName = uniqid('', true) . '.' .$myFileExt; 
        $fileDestination = "/var/www/upload".$newFileName; 

        if(move_uploaded_file($myFileTmp, $fileDestination)) { 
         print_r($fileDestination); 
        } else { 
         print_r($myFileError); 
        } 
       } else { 
        print_r("error"); 
       } 
      } else { 
       print_r("error"); 
      } 
     } 
    ?> 

這裏是形式:

<form action="" method="post" enctype="multipart/form-data" style="margin:15px"> 
      <input type="file" style="margin:5px" name="myFile"> 
      <input type="submit" class="btn-upload-file" style="margin:5px" value="Upload"> 
      </form> 

任何想法?

+1

如果你正在使用Ubuntu /阿帕奇,在/var/log/apache2/error.log的底部檢查內容 - 哪個部分失敗可能給你一些指標。 –

+0

表單中的動作是否指向文件? – Birdman

+0

該行動應該指向相同的文件.. PHP和HTML部分是在同一個index.php文件..我是新的PHP,我有申報的文件,即使它是一個而不是另一個? –

回答

2

你的問題是非常小... 你剛剛錯過了一個斜槓(/)之後的/ www/uploads。 試試這個:

<?php 
     if (isset($_FILES["myFile"])) { 
      $myFile   = $_FILES["myFile"]; 
      // File prop 
      $myFileName  = $myFile["name"]; 
      $myFileTmp  = $myFile["tmp_name"]; 
      $myFileSize  = $myFile["size"]; 
      $myFileError = $myFile["error"]; 

      //File extension 
      $myFileExt = explode(".", $myFileName); 
      $myFileExt = strtolower(end($myFileExt)); 
      $allowed = array ('png' , 'jpg' , 'txt'); 

      if(in_array($myFileExt, $allowed)) { 
       if($myFileError === 0) { 
        $newFileName  = uniqid('', true) . '.' . $myFileExt; 
        $fileDestination = "/var/www/upload/{$newFileName}";  //YOU WERE ONLY MISSING A SLASH (/) HERE AFTER /upload 
        if(move_uploaded_file($myFileTmp, $fileDestination)) { 
         print_r($fileDestination); 
        } else { 
         print_r($myFileError); 
        } 
       } else { 
        print_r("error"); 
       } 
      } else { 
       print_r("error"); 
      } 
     } 
    ?> 


    <form action="" method="post" enctype="multipart/form-data" style="margin:15px"> 
     <input type="file" style="margin:5px" name="myFile"> 
     <input type="submit" class="btn-upload-file" style="margin:5px" value="Upload"> 
    </form> 
+0

嗯,我不知道這是錯誤,因爲我有同樣的問題。它在這裏失敗:if(move_uploaded_file($ myFileTmp,$ fileDestination))和print_r($ myFileError);返回「0」。 –