PHP 文件上传:完整前后端代码示例和注意事项
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 '上传失败。';
}
}
}
?>
注意事项
- 表单的
enctype属性必须设置为multipart/form-data,否则无法上传文件。 - 后端
upload.php脚本必须在服务器上运行,否则无法上传文件。 - 为了安全起见,需要对上传的文件进行验证,例如检查文件类型、文件大小等。
总结
本文提供了一个完整的 PHP 文件上传代码示例,涵盖前端 HTML 表单和后端 PHP 脚本,并详细解释了文件上传的原理和注意事项。希望本文能够帮助您快速搭建自己的文件上传功能。
原文地址: https://www.cveoy.top/t/topic/oBN3 著作权归作者所有。请勿转载和采集!