引言

前端表单设计

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');
?>

总结