2016-07-13 128 views
0

我使用的是在本地主機上運行的Apache服務器。 我不知道PHP,所以我嘗試從w3schools網站的代碼,但我不能讓它工作。PHP文件上傳到本地主機

下面是HTML代碼:

<!DOCTYPE html> 
<html> 
<body> 

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 
</body> 
</html> 

的PHP代碼:

<?php 
$target_dir = "uploads/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
echo $target_file; 
$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; 
    } 
} 
?> 

echo命令在PHP代碼的開始,僅返回 「上傳/」 所以我想$ _FILES無法正常工作。

EDIT2

我重新安裝的Apache與XAMPP這個時候,我有代碼沒有更多的問題(它輸出「文件是一個圖像」),但仍然沒有在我的「上傳」上傳的文件夾。我的「上傳」文件夾與本地主機中的網頁位於同一個文件夾中。

我使用默認的php.ini(file_uploads = on)。 我從不同的目錄嘗試了不同大小的不同文件,但迄今爲止沒有成功。

+1

難道ü在你工作的同一目錄下創建'uploads'文件夾? – Sree

+0

那麼你的問題是什麼? – user1234

+0

我編輯了我的最後一句話:在php代碼開頭的echo命令只返回「uploads /」,所以我猜$ _FILES不能正常工作。 – oro777

回答

2

編輯

這應該很好地工作。至於內容長度警告,您需要編輯您的php.ini文件。
php.ini
編輯這2行。
post_max_size = 200M
upload_max_filesize = 200M

HTML

<html> 
<body> 

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image"> 
</form> 
</body> 
</html> 

upload.php的

<?php 
if (!empty($_FILES) && isset($_FILES['fileToUpload'])) { 
    switch ($_FILES['fileToUpload']["error"]) { 
     case UPLOAD_ERR_OK: 
      $target = "upload/"; 
      $target = $target . basename($_FILES['fileToUpload']['name']); 

      if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target)) { 
       $status = "The file " . basename($_FILES['fileToUpload']['name']) . " has been uploaded"; 
       $imageFileType = pathinfo($target, PATHINFO_EXTENSION); 
       $check = getimagesize($target); 
       if ($check !== false) { 
        echo "File is an image - " . $check["mime"] . ".<br>"; 
        $uploadOk = 1; 
       } else { 
        echo "File is not an image.<br>"; 
        $uploadOk = 0; 
       } 

      } else { 
       $status = "Sorry, there was a problem uploading your file."; 
      } 
      break; 

    } 

    echo "Status: {$status}<br/>\n"; 

} 
+0

我試圖將目標目錄更改爲c:/ uploads,但沒有上傳。我的瀏覽器的控制檯是空的,因爲我寫的回顯是空的文件名。 – oro777

+0

@ oro777給我一段時間,在編輯我的答案之前,我嘗試讓我的第一個人工作 – DunnoHowToCode

+0

@ oro777請嘗試更改這些更改並更新結果或任何錯誤。 – DunnoHowToCode

0

你的代碼工作正常。 我剛剛檢查過它

uploads/untitled.pngFile is an image - image/png. 

所以你可能會錯過別的東西。

提供您使用的文件及其完整的代碼清單