将多个文件上传到服务器并
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 等我的上传课程。
然而,我想要做的是以某种方式将名称属性<input name="foo">
添加到插入的行中,以便“文件 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 将多个文件上传到服务器