所以我想通過HTML表單和一個簡單的php腳本進行基本上傳,但move_uploaded_file函數總是返回false。我已經在目錄上運行「chmod 777」(當我實際得到這個工作時,我會處理更多的安全問題),並且「upload」目錄位於htdocs文件夾(實際上是Ubuntu服務器和Linux Mint中的/ var/www)。move_uploaded_file在Linux中的Apache服務器上不工作Mint
這裏是形式:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
...和... upload_file.php
<?php
if ($_FILES["file"]["error"] == 0){
if (file_exists("upload/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
if(move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/upload/" . $_FILES["file"]["name"])){
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}else{
echo "Failed to move uploaded file";
}
}
}else{
echo "Return Code: " . $_FILES["file"]["error"];
}
?>
當我嘗試上傳一個小JPEG,我得到 「無法移動文件」任何想法?
做**不**使用'['name']'參數來存儲文件,除非您採取了大量的安全防範措施。在遠程用戶的控制下,該名稱值是完全的,並且可以讓用戶在服務器上的任何文件上隨意塗鴉,因此可以盲目使用它。例如他們可以破解上傳並命名他們的文件'../../../../../ etc/passwd'。 –
啓用完整的錯誤報告並將錯誤消息記錄到文件中。您應該看到詳細信息,以便減少所需的猜測量。 –