将多个文件上传到服务器并

Posted

技术标签:

【中文标题】将多个文件上传到服务器并【英文标题】:Upload multiple files to server and 【发布时间】:2012-10-27 12:54:39 【问题描述】:

我的第一篇文章,所以要温柔!我试过搜索这个并且有很多类似的帖子,但我似乎找不到任何与我的问题完全一样的东西,而且我已经在这个问题上待了好几个小时! :-/

我正在用 php (5.3) 和 mysql 构建一个系统,部分功能是要求用户根据之前的一些选择上传一些文件。示例表单如下:

<form action="" method="post" enctype="multipart/form-data" id="uploadFiles">
<p>
<label for="file1">Upload file 1:</label>
<input type="file" name="file1" id="image">
</p>
<p>
<label for="file2">Upload file 2:</label>
<input type="file" name="file2" id="image2">
</p>
<p>
<input type="submit" name="upload" id="upload" value="Upload">
</p>
</form>

在这种情况下,用户需要上传两个不同的文档。这一切都对我有用,我可以将 2 个文件保存到服务器,然后通过循环“$_FILES”将 2 个记录插入到数据库中的表中,其中包含文件名、文件类型(pdf、jpg)和用户 ID 等我的上传课程。

然而,我想要做的是以某种方式将名称属性&lt;input name="foo"&gt; 添加到插入的行中,以便“文件 1”在名为 document_type 的列中具有“file1”,而“文件 2”将具有“file2”。这样我就可以在 MySQL 中做一个基本的检查,看看用户是否上传了适当的文件。

切入正题,有没有办法在我的 Upload 类中将 INPUT“名称”属性分配或关联到 $_FILES 中的每个文件,以便当我循环访问 $_FILES 时,会有一个唯一的 document_type?

如果您需要有关我的设置的更多信息,请告诉我。

【问题讨论】:

你想从一个上传字段上传两个文件,或者你需要两个不同的上传字段。 【参考方案1】:

我相信这个问题已经得到解答,但对于未来的建议,如果您需要有关 CI 中传递参数的更多信息,您可以使用 Xdebug(我与 Netbeans 一起使用)。我只用了一个星期,它是一个很棒的工具!

【讨论】:

【参考方案2】:

最简单的方法是输入不使用不同的名称,但将相同的名称写入数组,例如 name="file[]"。

【讨论】:

【参考方案3】:

文件 INPUT 的名称应该是 $_FILES 数组中行的键。例如,在您的示例中,$_FILES 数组应该有两行可以像这样引用:$_FILES['file1']$_FILES['file2']。因此,当您遍历数组时,只需查找该键值并将其插入行中即可。

【讨论】:

谢谢,这对我来说也非常有用和愚蠢的疏忽,尽管我的课程中的代码需要简化。现在要是我能投票就好了! ;-)【参考方案4】:
foreach ($_FILES as $inputName => $uploadedFile) 
    echo $inputName, ':', PHP_EOL;
    print_r($uploadedFile);

输出

file1:
Array (
    'name' => ...
    'tmp_name' => ...
    ...
)
file2:
Array (
    'name' => ...
    'tmp_name' => ...
    ...
)

【讨论】:

现在我觉得自己很愚蠢! $inputName 是我需要的变量。其他答案也是正确的,因为我需要使用文件 [],但我的课程过于复杂。这简化了它。感谢您的帮助,现在一切正常! :) @priley 很高兴为您提供帮助! :)

以上是关于将多个文件上传到服务器并的主要内容,如果未能解决你的问题,请参考以下文章

iOS 使用 NSURLSessionTask 将多个文件上传到服务器

在将多个文件上传到服务器之前验证多个文件上传中的单个文件

将数据分块并上传到服务器

在c#中将多个文件上传到FTP

使用 Summernote File 一次将多个文件上传到服务器

fabric == 2.4.0怎么上传多个服务器