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