2012-09-02 50 views
3

我知道這個問題有幾個問題,我已經梳理了其中的許多問題,並沒有找到一個正確的方法來正確地完成目標。從本質上講,我試圖在表單中捕獲多個文件輸入並將它們推送到PHP。我至少有PHP部分,但它的Jquery im正在努力。我通過調試發現的主要問題之一是我的動作參數根本無法通過。我發佈的代碼如下。任何幫助將不勝感激。謝謝。通過jquery發送多個上傳到PHP

$(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; 
    }); 
}); 
+0

您可以實現您想要的唯一方法是在用戶丟棄時將每個'input [name^=「uploadFile」]'包裝在'

'中。然後我們可以有一個通用的提交功能。當他們點擊它時,我們會阻止默認功能。迭代所有表單元素,獲取我們需要的數據,然後使用'$('form')。submit()'來執行正常的功能。 – Ohgodwhy

回答

1

我不知道我是否知道了,但是當人們想到ajax uploader時,他們並不知道這一點。實際上,這不是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的信息。