通过Jquery将多个上传内容发送到PHP

时间:2012-09-02 00:31:21

标签: php jquery ajax

我知道关于这个问题有几个问题,我已经梳理了很多问题,但没有找到正确的方法来正确地实现目标。本质上,我试图在表单中捕获多个文件输入并将它们推送到PHP。我有PHP部分至少想通了,但它的Jquery我正在努力。我通过调试注意到的一个主要问题是我的动作参数根本没有通过。我发布的代码如下。任何帮助将不胜感激。谢谢。

$(document).ready(function () {
  //if submitting imgages form
  $('#submit').click(function () {
    // match anything not a [ or ]
    regexp = /^[^[\]]+/;
    var fileInput = $('.putImages input[type="file"]');
    var fileInputName = regexp.exec(fileInput.attr('name'));

    // make files available
    var data2 = new FormData(fileInput);
    jQuery.each($(fileInput)[0].files, function (i, file) {
      data2.append(fileInputName + '[' + i + ']', file);
    });

    //organize data
    var data = new FormData($('input[name^="uploadFile"]'));
    jQuery.each($('input[name^="uploadFile"]')[0].files, function (i, file) {
      data.append(i, file);
    });

    $.ajax({
      type: 'GET',
      url: 'productadminupdate.php',
      data: data2 + "&action=" + 'images',
      cache: false,
      contentType: false,
      processData: false,
      success: function (response) {
        $('#imgform_result').html(response).fadeIn();
      }
    });

    return false;
  });
});

1 个答案:

答案 0 :(得分:1)

我不知道我是否得到了它,但是当人们想到ajax上传者时,他们并不是真的知道这一点。实际上,JavaScript不是在做这项工作。 该技术存在于将表单的操作定位到Iframe。 应隐藏此Iframe 这是一个例子:

<form method='post' enctype='multipart/form-data' action='YOUR_FILE.php' target='upload_iframe'>        
    <label>photo1:</label>
    <input type='file' name='photo1'/>
    <label>photo2:</label>
    <input type='file' name='photo2'/>
    <label>photo3:</label>
    <input type='file' name='photo3'/>
    <label>photo4:</label>
    <input type='file' name='photo4'/>
    <label>photo5:</label>
    <input type='file' name='photo5'/>
    <input type='submit' value='Send'/>
    </form>
</div>
<iframe name='upload_iframe'></iframe>

所以在iframe中,你的php代码将进行上传,使用$ _FILES获取信息。