【问题标题】:Multiupload with PHP/JavaScript使用 PHP/JavaScript 进行多重上传
【发布时间】:2011-03-06 16:46:30
【问题描述】:

有没有什么解决方案可以在不使用 Flash 的情况下一次上传多个文件? :)

不是这样:选择一个文件,它进入股票,选择第二个文件,它进入股票然后上传。但是一次选择所有需要的文件并上传它们。

【问题讨论】:

  • 可能一张一张上传,一张完成后再开始另一张?

标签: php ajax file upload


【解决方案1】:

HTML5 通过在输入中指定“multiple”属性来支持多个文件。

为输入提供一个以方括号结尾的名称属性(即“myfileinput[]”),它在 PHP 中看起来就像在页面上有两个输入称为相同的东西一样。

这显然在旧版浏览器中不起作用,但是可以通过 JS 检测到缺少对多个文件上传的支持,并且可以通过 JS 创建多个文件输入。

【讨论】:

    【解决方案2】:

    您可以有多个文件输入字段:

    <input type="file" name="file1" />
    <input type="file" name="file2" />
    etc...
    

    <input type="file" name="file[]" />
    <input type="file" name="file[]" />
    

    它们可以通过 Javascript 动态创建,也可以从服务器提前创建。无论哪种方式,您都会上传多个文件,但每个输入字段只有一个文件。

    第一个选项将按预期工作。您将在 PHP 中为每个文件获得一个 $_FILES 数组条目。使用数组表示法的另一个选项有点违反直觉。你得到的东西看起来像

    $_FILES = array(
       'file' => array(
           'name' => array(
                0 => 'name of first file',
                1 => 'name of second file
            ),
            'type => array(
                0 => 'mime type of first file',
                1 => 'mime type of second file',
         etc....
    

    【讨论】:

    • 也许我的英语不好,但我写过:“不是那样:选择一个文件,它进入股票,选择第二个文件,它进入股票然后上传。但是选择一次所有需要的文件并上传它们。” :)
    • 在 HTML5 成为标准和普及之前,这是在所有浏览器中支持它的唯一实用方法,除了简单的 html 之外不使用任何客户端。
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2018-06-19
    • 2011-06-11
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多