PHP實作檔案上傳功能
P粉868586032
P粉868586032 2024-03-25 18:04:14
0
2
600

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

<?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粉868586032
P粉868586032

全部回覆(2)
P粉464082061

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

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

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

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

P粉788571316

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

正如 @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:

希望這有幫助。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板