一、引言
二、HTML表单设计
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
在这个表单中,enctype="multipart/form-data"属性确保了表单可以发送文件数据。name="fileToUpload"属性用于在PHP脚本中标识上传的文件。
三、PHP文件上传处理
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_FILES["fileToUpload"])) {
$file_name = $_FILES["fileToUpload"]["name"];
$file_tmp_name = $_FILES["fileToUpload"]["tmp_name"];
$file_size = $_FILES["fileToUpload"]["size"];
$file_error = $_FILES["fileToUpload"]["error"];
$file_type = $_FILES["fileToUpload"]["type"];
$file_ext = explode('.', $file_name);
$file_actual_ext = strtolower(end($file_ext));
$allowed = array('jpg', 'jpeg', 'png', 'gif');
if (in_array($file_actual_ext, $allowed)) {
if ($file_error === 0) {
if ($file_size < 500000) {
$file_new_name = uniqid('', true) . '.' . $file_actual_ext;
$file_destination = "uploads/" . $file_new_name;
if (move_uploaded_file($file_tmp_name, $file_destination)) {
echo "The file " . htmlspecialchars($file_name) . " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
} else {
echo "Sorry, your file is too large.";
}
} else {
echo "Sorry, there was an error uploading your file.";
}
} else {
echo "You cannot upload files of this type.";
}
}
}
?>
在这个脚本中,我们首先检查用户是否提交了表单,并获取上传文件的详细信息。然后,我们检查文件类型是否允许,文件大小是否在范围内。如果一切正常,我们将文件重命名并移动到服务器上的指定目录。
四、图片显示
<img src="uploads/your_file_name.jpg" alt="Uploaded Image">