引言
前端表单设计
HTML表单
<form enctype="multipart/form-data" action="upload.php" method="POST">
Send this file:
<input type="file" name="uploadinput[]" multiple>
<input type="submit" value="Send File">
</form>
在这个表单中,enctype 属性设置为 multipart/form-data,这是上传文件所必需的。name 属性用于在PHP脚本中标识上传的文件。
文件选择
后端处理
PHP脚本
在服务器端,我们需要一个PHP脚本来处理上传的文件。以下是一个基本的处理脚本:
<?php
// 检查是否有文件被上传
if (isset($_FILES['uploadinput'])) {
// 图片目录
$imgDir = "../upload/";
// 遍历上传的文件数组
foreach ($_FILES['uploadinput'] as $key => $file) {
// 检查文件是否上传成功
if ($file['error'] == 0) {
// 设置文件名
$newFileName = md5(uniqid(rand(), true)) . '.' . pathinfo($file['name'], PATHINFO_EXTENSION);
// 移动文件到指定目录
if (move_uploaded_file($file['tmp_name'], $imgDir . $newFileName)) {
echo "文件上传成功: " . $newFileName . "<br>";
} else {
echo "文件上传失败: " . $file['name'] . "<br>";
}
}
}
}
?>
在这个脚本中,我们首先检查是否有文件被上传。如果文件上传成功,我们将生成一个新的文件名(为了避免文件名冲突),然后将文件移动到指定的目录。
图片存储
图片显示
使用URL显示
<img src="upload/<?php echo $newFileName; ?>" alt="Uploaded Image">
使用PHP函数显示
<?php
echo thepostthumbnail($imgDir . $newFileName, 'medium', 'Upload Image');
?>