我有使用<input type="file">的单文件上传的经验.然而,我在一次上传多个文件时遇到困难.

例如,我想一次 Select 一系列图像,然后将它们上传到服务器.

It would be great to use a single file input control, if possible.

有人知道如何做到这一点吗?

推荐答案

这在HTML5年内是可能的.示例(PHP5.4):

<!doctype html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <form method="post" enctype="multipart/form-data">
            <input type="file" name="my_file[]" multiple>
            <input type="submit" value="Upload">
        </form>
        <?php
            if (isset($_FILES['my_file'])) {
                $myFile = $_FILES['my_file'];
                $fileCount = count($myFile["name"]);

                for ($i = 0; $i < $fileCount; $i++) {
                    ?>
                        <p>File #<?= $i+1 ?>:</p>
                        <p>
                            Name: <?= $myFile["name"][$i] ?><br>
                            Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
                            Type: <?= $myFile["type"][$i] ?><br>
                            Size: <?= $myFile["size"][$i] ?><br>
                            Error: <?= $myFile["error"][$i] ?><br>
                        </p>
                    <?php
                }
            }
        ?>
    </body>
</html>

以下是在文件对话框中 Select 两个项目后在Chrome中的外观:

下面是点击"上传"按钮后的样子.

这只是一个完整答案的草图.有关在PHP中正确、安全地处理文件上传的更多信息,请参阅PHP Manual: Handling file uploads.

Php相关问答推荐

Laravel变形 map 不适用于扩展模型

添加自定义Metabox到WooCommerce管理订单,启用HPOS

如何隐藏x轴图表上的值

Laravel集合块()方法

MySQLi是否在事务错误时删除保存点(并且仅删除保存点)?

在Laravel Eloquent中实现一对多关系

为什么正则表达式与得到的文本块之前得到的也行?

如何将隐式乘法添加到PHPPEG基本计算器语法中?

PHP Laravel Web应用启动时间&>15秒

在Laravel中从动态嵌套数组中获取值

从字符串转换日期和/或时间时,Laravel转换失败

如何在WordPress REST API中判断应用程序密码

向WooCommerce管理订单总额添加自定义总额行

显示 woocommerce 中所选变体的属性术语描述

Woocommerce 临时购物车税未根据第一个请求正确计算

在 Woocommerce 邮箱订单中显示产品 GTIN

在特征中使用类的属性

我需要一个正则表达式模式来获取在不包含特定字符串后面的模式中的文本

优化后的标题:如何在WooCommerce我的帐户编辑表单中添加账单字段

Symfony 迁移判断器在我的工作中失控