使用 PHP 上传文件:排除“未定义变量:HTTP_POST_FILES”错误
使用 PHP 将文件上传到服务器可以是一个简单的过程。但是,必须解决在此过程中可能出现的任何错误。
问题:
尝试使用 PHP 上传文件时发生错误:“注意:未定义的变量: HTTP_POST_FILES”。
原因:
$HTTP_POST_FILES变量指的是存储上传文件信息的全局数组。然而,它自 PHP 4.1.0 起已被弃用,不建议使用。
解决方案:
现代 PHP 版本期望使用不同的结构来访问上传的文件数据。使用以下方法代替 $HTTP_POST_FILES:
$_FILES["file_name"]["key"]
其中:
示例代码:
以下改进的 PHP 代码遵循文件上传的最佳实践:
$target_dir = "upload/"; $target_file = $target_dir . basename($_FILES["filename"]["name"]); $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); $allowedTypes = ['jpg', 'png']; if (isset($_POST["submit"])) { // Check file type if (!in_array($imageFileType, $allowedTypes)) { echo "Type is not allowed"; } // Check if file already exists elseif (file_exists($target_file)) { echo "Sorry, file already exists."; } // Check file size elseif ($_FILES["filename"]["size"] > 5000000) { echo "Sorry, file is too large."; } else { // Upload file if (move_uploaded_file($_FILES["filename"]["tmp_name"], $target_file)) { echo "File uploaded successfully."; } } }
以上是为什么在 PHP 中上传文件时出现'未定义的变量:HTTP_POST_FILES”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!