📅  最后修改于: 2023-12-03 15:18:33.505000             🧑  作者: Mango
在Web应用程序中,文件上传是一项很常见的操作。PHP提供了相应的函数和语法,方便开发者实现文件上传。本文将介绍PHP中文件上传的基本代码。
首先,我们需要在HTML表单中添加文件上传字段。下面是一个最简单的表单代码:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
该表单中包含一个文件上传字段和一个提交按钮。值得注意的是,表单的enctype属性必须设置为“multipart/form-data”,否则文件上传操作无法执行。
接下来,我们需要编写PHP代码处理文件上传。下面是一个最简单的上传代码:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
echo "The file ". basename( $_FILES["file"]["name"]). " has been uploaded.";
?>
该上传代码将上传目录设置为“uploads/”,并将文件名定义为原始文件名。接着,使用move_uploaded_file()函数将临时文件移动到上传目录中。最后,在网页上显示上传成功的消息。
下面是一个完整的文件上传代码:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// 检查文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// 检查文件大小
if ($_FILES["file"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "The file ". htmlspecialchars( basename( $_FILES["file"]["name"])). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
该代码增加了两个验证步骤:
如果文件类型或大小不符合要求,将输出错误消息。同时,如果文件上传成功,将输出上传成功的消息。
以上就是PHP中文件上传的基本代码。开发者可以基于此代码进行进一步开发,增加安全认证、图片压缩等功能。