2013-10-27 2 views
1

Я хочу, чтобы получить несколько файлов в массиве с HTML5 объекта данных формы,Как сделать несколько файлов в массиве с помощью объекта данных формы HTML5?

// HTML5 form data object. 
var fd = new FormData(); 
jQuery.each(fileList, function (i, file) { 
    fd.append('file[' + i + ']', file); 
}); 

результат,

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 
       ) 

     ) 

) 

, но я после этого результата,

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 
       ) 
     ) 

) 

ли возможное?

ответ

1

Это поможет вам начать работу:

var newArr=[], 
    keys= $.map(files.file,function(value, key){ 
     return key 
    }), 
     numFiles= files.file[keys[0]].length; 

    for(i=0; i< numFiles; i++){ 
     var f={}; 
     $.each(keys, function(keyIdx, key){ 
      f[key]= files.file[key][i]; 
     }); 
     newArr.push(f); 
    } 

DEMO

+0

спасибо за помощь! : D – laukok

+1

np ... эти сценарии переопределения - отличная практика. Я не знаю formdata api очень хорошо ... возможно, простой способ получить тотальные файлы из собственного метода также – charlietfl

+0

да родной метод всегда блестящий! Благодарю вас: D – laukok