搜尋

首頁  >  問答  >  主體

PHP實作檔案上傳功能

我想將文件上傳到給定資料夾。

<?php
$folder = "upload/";
if (is_uploaded_file($HTTP_POST_FILES['filename']['tmp_name']))  {   
    if (move_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'], $folder.$HTTP_POST_FILES['filename']['name'])) {
         echo "File uploaded";
    } else {
         echo "File not moved to destination folder. Check permissions";
    };
} else {s
     echo "File is not uploaded";
}; 
?>

錯誤是:

注意:未定義變數:第 3 行 C:\wamp\www\sdg\import\ips.php 中的 HTTP_POST_FILES

P粉868586032P粉868586032277 天前602

全部回覆(2)我來回復

  • P粉464082061

    P粉4640820612024-03-26 13:22:37

    PHP 4.1 引進了超級全域。它們取代了包含從請求中提取的資料的舊的長命名數組。 $_FILES[] 已取代$HTTP_POST_FILES[]$_GET[ ] 取代了 $HTTP_GET_VARS[] 等等

    對於後續的 PHP 4 版本,舊數組和新數組可以並排使用。 PHP 5 預設會停用舊數組的生成,並引入了php.ini< /code> 指令 register_long_arrays< /code> 可用於重新啟用舊數組的創建。

    自 PHP 5.4 起,舊的長命名數組被完全刪除,並且 register_long_arrays 與它們一起消失。

    結論:您正在從一個非常古老或非常糟糕的教程中學習。找一個更好的。

    回覆
    0
  • P粉788571316

    P粉7885713162024-03-26 09:22:47

    以下是上傳檔案的一種方式,還有很多其他方式。

    正如 @nordenheim 所說,$HTTP_POST_FILES 自 PHP 4.1.0 起已被棄用,因此不建議使用它。

    PHP 程式碼(upload.php)

     5000000) {
            $msg = "Sorry, your file is too large.";
        } elseif (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            $msg = "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded.";
        }
    }
    
    ?>

    啟動功能的 HTML 程式碼

    Select file to upload:

    希望這有幫助。

    回覆
    0
  • 取消回覆