【发布时间】:2015-12-22 10:59:33
【问题描述】:
我正在为我的上传页面使用 Jquery-File-Upload,但在添加额外的上传字段时遇到了问题。
我正在关注该页面:https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-form-data
它适用于 1 个文件提交。 然而,随着多个文件的提交,我们开始看到问题,因为文件上传 1 个文件/POST (singleFileUploads: true)。
我用作参考的代码如下:
<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload fade">
<!-- ... -->
<td class="title"><label>Title: <input name="title[]" required></label></td>
<!-- ... -->
</tr>
{% } %}
</script>
如果您使用 2 个文件提交,那么您将获得 2 个帖子:
1/
$_REQUEST:
(
title:
(
[0] -> Title1
[1] -> Title2
)
)
$_FILES:
(
[0] -> ( 'name' => 'file name 1', ... )
)
2/
$_REQUEST:
(
title:
(
[0] -> Title1
[1] -> Title2
)
)
$_FILES:
(
[0] -> ( 'name' => 'file name 2', ... )
)
那么,在php端,函数handle_form_data依赖于文件索引
<?php
// ...
protected function handle_form_data($file, $index) {
// Handle form data, e.g. $_REQUEST['description'][$index]
}
// ...
问题是索引始终为 0,因为我们正在上传 1 个文件/帖子。现在您可以看到,由于 $_REQUEST 会上传所有文件中的所有额外字段(无论它是当前文件是什么),因此来自 $_FILES 的索引会从额外字段数组中去同步。
除了将 singleFileUploads 关闭之外,您知道任何解决方法吗?
【问题讨论】:
标签: jquery-file-upload blueimp