2015-09-27 79 views
1

因此,我正在嘗試按照本教程here的說法,但我很難讓它按照預期的方式工作。所以我創建了一個名爲fileToUpload的文件,在這個文件中我有四個文件。首先,php.ini用下面的代碼:使用PHP上傳圖片到文件夾中

file_uploads = On 

二,upload.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> 

三,upload.php

<?php 
$target_dir = "uploads/"; 
$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; 
    } 
} 
?> 

最後,我有一個名爲uploads文件夾,用裏面什麼也沒有該文件夾。我應該注意到upload.html,upload.phpphp.ini都在一個名爲fileToUpload的文件夾中。

現在,當我點擊提交按鈕時,它顯示upload.php內部的代碼,uploads文件夾內沒有任何內容。但是,它應該將上傳的文件放入uploads文件夾中。但是,它不起作用。

+0

寫正確確保您的上傳文件夾搭配chmod 777以及 –

+0

什麼是搭配chmod 777? –

回答

2

您錯過了將上傳的文件放入該目錄的調用。下來的東西的行(從您鏈接到本教程無恥地複製):

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."; 
} 
+0

非常感謝您的回覆。在你閱讀你的答案後,我決定複製並粘貼'完成上傳文件PHP腳本'到我的'.php'文件中,但是,當我點擊提交按鈕後,它只是顯示代碼... –

+0

@JaeKim webserver有PHP安裝?它配置爲處理'.php'文件嗎? – Mureinik

+0

我實際上並沒有像一個虛擬主機網站那樣通過它。我只是在我的電腦上進行本地...這是問題嗎? –

1

當您上傳文件時,它不會直接去你想去的地方,但通過你的服務器的配置deifined一個臨時文件夾。 然後您必須將臨時文件移動到您想要的位置。

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

和PHP必須有在目標文件夾