1、在HTML表单中设置enctype属性为"multipart/form-data",表示表单数据以多部分形式进行提交,可以上传文件。
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="fileToUpload">
<input type="submit" name="submit" value="上传文件">
</form>
2、在PHP文件中使用$_FILES数组来获取上传的文件信息,包括文件名、临时文件名、文件大小、文件类型等。需要注意的是,$_FILES数组中的键名是由表单中的元素的name属性决定的。
$file_name = $_FILES["fileToUpload"]["name"]; $file_tmp = $_FILES["fileToUpload"]["tmp_name"]; $file_size = $_FILES["fileToUpload"]["size"]; $file_type = $_FILES["fileToUpload"]["type"];
3、检查上传文件的类型和大小是否符合要求。可以使用$_FILES数组中的"error"元素来判断是否上传成功,如果为0,则表示上传成功,否则会有不同的错误码。
if ($_FILES["fileToUpload"]["error"] > 0) {
echo "上传文件出错了:" . $_FILES["fileToUpload"]["error"];
} else if($file_type != "image/jpeg" && $file_type != "image/png" && $file_type != "image/gif") {
echo "只允许上传JPG、PNG、GIF格式的文件";
} else if($file_size > 1000000) {
echo "上传文件的大小不能超过1MB";
} else {
// 上传文件到服务器代码
}
4、将上传的文件从临时目录移动到服务器指定的目录中。可以使用move_uploaded_file函数来实现。需要注意的是,上传的文件会被重命名为一个唯一的文件名,以保证不会覆盖已有的文件。
$target_dir = "uploads/"; // 上传文件保存的目录
$target_file = $target_dir . uniqid() . "_" . basename($file_name); // 生成唯一的文件名
if (move_uploaded_file($file_tmp, $target_file)) {
echo "文件上传成功,保存路径为:" . $target_file;
} else {
echo "文件上传失败";
}