Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2017, 18:30
Интересующийся
Отправить личное сообщение для elink12 Посмотреть профиль Найти все сообщения от elink12
 
Регистрация: 08.04.2017
Сообщений: 17

Передача файлов по ajax - jQuery
Друзья, как правильно обрабатывать массив файлов при передаче и сохранить структуру?
При попытке передать массив файлов он разбивает неверно, кто-то может пояснить тупому, почему так происходит как решить?
Array
(
    [file] => Array
        (
            [name] => Array
                (
                    [0] => 1402236_566802636708984_1354256864_o.jpg
                    [1] => 287481_456592524374335_1348353782_o.jpg
                )
 
            [type] => Array
                (
                    [0] => image/jpeg
                    [1] => image/jpeg
                )
 
            [tmp_name] => Array
                (
                    [0] => C:\wamp\tmp\php5A1E.tmp
                    [1] => C:\wamp\tmp\php5A21.tmp
                )
 
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                )
 
            [size] => Array
                (
                    [0] => 217360
                    [1] => 144071
                )
 
        )
 
)
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2017, 18:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от elink12
массив файлов он разбивает неверно
И что неверного?
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2017, 18:42
Интересующийся
Отправить личное сообщение для elink12 Посмотреть профиль Найти все сообщения от elink12
 
Регистрация: 08.04.2017
Сообщений: 17

Хм, логичнее что он должен иметь такой вид

Array
(
    [file] => Array
        (
            [0] => Array
                (
                    [name] => 1402236_566802636708984_1354256864_o.jpg
                    [type] => image/jpeg
                    [tmp_name] => C:\wamp\tmp\php35C1.tmp
                    [error] => 0
                    [size] => 217360
                )

            [1] => Array
                (
                    [name] => 964570_566803006708947_840223346_o.jpg
                    [type] => image/jpeg
                    [tmp_name] => C:\wamp\tmp\php35C4.tmp
                    [error] => 0
                    [size] => 518594
                )
        )

)
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2017, 18:49
Интересующийся
Отправить личное сообщение для elink12 Посмотреть профиль Найти все сообщения от elink12
 
Регистрация: 08.04.2017
Сообщений: 17

Сообщение от laimas Посмотреть сообщение
И что неверного?
Я добавлю код, если не очень понятно, какой вид массив должен иметь выше.

<form id="testForm" method="post" class="form-horizontal">
   <input type="text" name="laod[]"><br>
   <input type="file" name="files[]" multiple /> <br>
   <input type="file" name="files[]" multiple /><br>
   <input type="file" name="file"> <br>
   <input type="button" name="save" value="save" onclick="sendRequestFormAjax(this,event);">
   </form>


formData = new FormData();
      $.each(form.find("input[type=file]"), function(i, iFiles) {
            var name = $(iFiles).attr("name");
            formData.append(name, iFiles.files[0]);
          });
Ответить с цитированием
  #5 (permalink)  
Старый 08.04.2017, 18:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Так не получится, вам доступно управлять только индексами полей, а не ключами name, type... Да и не нужно этого, какие проблемы?
Ответить с цитированием
  #6 (permalink)  
Старый 08.04.2017, 18:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если поле multiple зачем же их два?
Ответить с цитированием
  #7 (permalink)  
Старый 08.04.2017, 19:00
Интересующийся
Отправить личное сообщение для elink12 Посмотреть профиль Найти все сообщения от elink12
 
Регистрация: 08.04.2017
Сообщений: 17

Сообщение от laimas Посмотреть сообщение
Так не получится, вам доступно управлять только индексами полей, а не ключами name, type... Да и не нужно этого, какие проблемы?
Конечно можно оставить и так, проблем нет. Но по факту удобнее получать готовый массив, а не обрабатывать его повторно в phpдля загрузки

Сообщение от laimas Посмотреть сообщение
Если поле multiple зачем же их два?
Это ошибка, но роли не играет

Последний раз редактировалось elink12, 08.04.2017 в 19:02.
Ответить с цитированием
  #8 (permalink)  
Старый 08.04.2017, 19:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от elink12
Но по факту удобнее получать готовый массив, а не обрабатывать его повторно в phpдля загрузки
Что за ерунда, РНР и возвращает готовый массив.
Ответить с цитированием
  #9 (permalink)  
Старый 08.04.2017, 19:06
Интересующийся
Отправить личное сообщение для elink12 Посмотреть профиль Найти все сообщения от elink12
 
Регистрация: 08.04.2017
Сообщений: 17

Ajax передаст такой массив $_FILES, который еще надо разобрать, что бы привести к нормальному виду.


Array
(
    [files] => Array
        (
            [name] => Array
                (
                    [0] => 1402236_566802636708984_1354256864_o.jpg
                    [1] => 287481_456592524374335_1348353782_o.jpg
                )
 
            [type] => Array
                (
                    [0] => image/jpeg
                    [1] => image/jpeg
                )
 
            [tmp_name] => Array
                (
                    [0] => C:\wamp\tmp\php5A1E.tmp
                    [1] => C:\wamp\tmp\php5A21.tmp
                )
 
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                )
 
            [size] => Array
                (
                    [0] => 217360
                    [1] => 144071
                )
 
        )
 
)
Ответить с цитированием
  #10 (permalink)  
Старый 08.04.2017, 19:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от elink12
Он вернет такой массив, который еще надо разобрать, что бы привести к нормальному виду.
Зачем? Чем ненормальна для обработки эта структура массива?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Ajax - потеря функций Infinity178 jQuery 4 20.01.2017 07:15
jQuery File Upload отправка без файлов Tarik jQuery 1 28.01.2016 18:26
Загрузка БОЛЬШИХ файлов посредством ajax barcelona jQuery 7 12.10.2012 03:37
Загрузка файлов (ajax jquery) q13m jQuery 3 08.03.2012 19:18
Передача файлов на клиента средствами AJAX GRIG AJAX и COMET 10 16.07.2010 17:23