PHP 文件上传:完整前后端代码示例和注意事项

本文将提供一个完整的 PHP 文件上传代码示例,涵盖前端 HTML 表单和后端 PHP 脚本,并详细解释文件上传的原理和注意事项。

前端 HTML 代码

<!DOCTYPE html>
<html>
<head>
	<title>PHP 文件上传</title>
	<meta charset='utf-8'>
</head>
<body>
	<form action='upload.php' method='post' enctype='multipart/form-data'>
		<label for='file'>选择文件:</label>
		<input type='file' name='file' id='file'><br><br>
		<input type='submit' name='submit' value='上传'>
	</form>
</body>
</html>

后端 PHP 代码

<?php
if(isset($_POST['submit'])) {
    $target_dir = 'uploads/';
    $target_file = $target_dir . basename($_FILES['file']['name']);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
    // 允许上传的文件类型
    $allowedTypes = array('jpg', 'jpeg', 'png', 'gif');
    if(!in_array($imageFileType, $allowedTypes)) {
        echo '只允许上传 JPG, JPEG, PNG 和 GIF 格式的文件。';
        $uploadOk = 0;
    }
    // 检查文件大小(最大为2MB)
    if ($_FILES['file']['size'] > 2000000) {
        echo '文件过大,请上传小于 2MB 的文件。';
        $uploadOk = 0;
    }
    // 如果 $uploadOk 为0,则上传失败
    if ($uploadOk == 0) {
        echo '上传失败。';
    } else {
        // 如果一切都正确,尝试上传文件
        if (move_uploaded_file($_FILES['file']['tmp_name'], $target_file)) {
            echo '文件 ' . basename( $_FILES['file']['name']) . ' 已上传。';
        } else {
            echo '上传失败。';
        }
    }
}
?>

注意事项

  1. 表单的 enctype 属性必须设置为 multipart/form-data,否则无法上传文件。
  2. 后端 upload.php 脚本必须在服务器上运行,否则无法上传文件。
  3. 为了安全起见,需要对上传的文件进行验证,例如检查文件类型、文件大小等。

总结

本文提供了一个完整的 PHP 文件上传代码示例,涵盖前端 HTML 表单和后端 PHP 脚本,并详细解释了文件上传的原理和注意事项。希望本文能够帮助您快速搭建自己的文件上传功能。

PHP 文件上传:完整前后端代码示例和注意事项

原文地址: https://www.cveoy.top/t/topic/oBN3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录