Re: Upload module + множественная загрузка
Valery Kholodkov
valery+nginxru на grid.net.ru
Сб Май 22 15:04:08 MSD 2010
dimkalinux пишет:
> При попытке использования множественной загрузки
>
> <input type="file" name="upload[]" tabindex="1" multiple="true"/>
>
> получается такой результат, print_r($_POST)
>
> Firefox 3.6 / Chromium
> Array
> (
> [form_sent] => 1
> [upload] => Array
> (
> [0] => cats.jpg
> [1] => image/jpeg
> [2] => /var/upload/pic/tmp/0000000598
> [3] => 58239
> [4] => Glider.png
> [5] => image/png
> [6] => /var/upload/pic/tmp/0000000599
> [7] => 724
> )
> )
>
> то есть пропадают названия полей.
> Если имя указать как name="upload" без скобок, то названия полей
> появляются, но загружается только 1 файл.
Первый патч во вложении добавляет директиву upload_tame_arrays. Если
установить upload_tame_arrays в yes, то квадратные скобки в файловых
полях, приходящих от клиента, будут удалены. Соответственно, в
конфигурации необходимо выполнить обратную операцию, например так:
upload_set_form_field "${upload_field_name}_name[]" "$upload_file_name";
upload_set_form_field "${upload_field_name}_content_type[]"
"$upload_content_type";
upload_set_form_field "${upload_field_name}_path[]" "$upload_tmp_path";
Полагаю, должно помочь.
>
> В Опере ещё хуже:
> C 1-м файлом все работает, но при множественной загрузке Опера шлет
> файлы в формате multipart/mixed и похоже что upload module с ним не
> работает — POST приходит пустым.
>
> Планируются ли исправления этих ситуаций в новых версиях модуля?
Вообще-то, при получении multipart/mixed должна возвращаться ошибка 415.
Тем не менее, судя по описанию, multipart/mixed добавить не сложно
(второй патч).
--
Best regards,
Valery Kholodkov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: upload_tame_arrays.patch
Type: text/x-diff
Size: 2312 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100522/af775122/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: upload_multipart_mixed.patch
Type: text/x-diff
Size: 1261 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100522/af775122/attachment-0001.patch>
Подробная информация о списке рассылки nginx-ru