簡體   English   中英

為什么來自w3schools的此上傳腳本無法在我的Apache2 Ubuntu服務器上上傳?

[英]Why is this upload script from w3schools not uploading on my Apache2 Ubuntu Server?

如果此問題過於補救,請提前道歉。 該委員會似乎是網站上最重要的事情。 接着...

我去了這個網站“ http://www.w3schools.com/php/php_file_upload.asp ”,並嚴格按照他們的指示進行操作,但是我選擇的.png文件不會上傳到我的www / upload文件夾中。

在我的index.php文件中,我有:

<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>

在我的www / upload_file.php中,我有:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

在我的/ www文件夾中,有一個名為“ upload”的內部文件夾。

當我嘗試上傳文件“ Anon.png”時,我得到...

Upload: Anon.png
Type: image/png
Size: 9.7392578125 kB
Temp file: /tmp/phpA2HFaj
Stored in: upload/Anon.png

由於我按照提供的說明進行操作,因此我假定文件夾“上載”中將存在一個名為“ Anon.png”的文件。 但是那里沒有這樣的文件。 為什么不?

請注意,我在Ubuntu13.10服務器上以默認設置運行Apache2。

我以前在/ www目錄中創建了/ upload文件夾,但是該文件夾沒有對用戶,組和其他用戶的完全寫權限。 修復了該問題,並將文件上傳大小限制增加到20k以上,並且可以正常工作。 抱歉。

經驗教訓:檢查文件夾權限。 chmod它。

似乎該腳本不執行任何操作來創建“上載”目錄。 看起來它希望您為此創建它。

使用諸如move_uploaded_file命令時,腳本不會檢查錯誤,因此它甚至可能不知道命令已失敗。

我以前在/ www目錄中創建了/ upload文件夾,但是該文件夾沒有對用戶,組和其他用戶的完全寫權限。 修復了該問題,並將文件上傳大小限制增加到20k以上,並且可以正常工作。 抱歉。

經驗教訓:檢查文件夾權限。 chmod o + w。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM