jQuery загружает файл, а затем отправляет форму в обычном режиме - PullRequest
1 голос
/ 02 декабря 2010

Я надеюсь, что смогу разобраться в этом вопросе.

В настоящее время я использую плагин jQuery Form + Validation, который прекрасно работает.

Но то, что я пытаюсь сделать, это

1, загрузить временный файл для манипуляции на следующем шаге

2, После загрузки файла отправьте форму, как обычно, чтобы перейти к следующему шагу (новый файл).

Так что я на 100% уверен, как это сделать, я сейчас использую этот код.

$("#fileUpload").validate({
        submitHandler: function(form) {

            $(form).ajaxSubmit({
                beforeSubmit: function() {
                    $('input').attr("disabled", true);
                    $("#uploadResponse").show('slow');
                    $('#uploadResponse').append("<img src='images/icons/ajax-loader.gif' />");
                },
                success: function(responseText, statusText, xhr, form) {
                    $('input[type=submit]').attr("disabled", false);
                    $('input[type=file]').attr("disabled", true);
                }, 
                error: function (responseText, statusText, xhr, form) {
                    alert("Oops... Looks like there has been a problem.");  
                }
            });
        }
    });

А для моей формы

<div id="uploadResponse" style="display: none;"> File Uploading, this can take a few minutes... </div>

<form action='page.ImportContacts2.php' name="mergeCSV"  id="fileUpload" method="post" enctype="multipart/form-data" >
        File: <input id="getCSV" name="getCSV" class="required" type="file">

        Delimiter Type: 
        <select id="delimiter" name="delimiter">
            <option value="1" selected="selected">Comma</option>
            <option value="2">Tab</option>
        </select>

        Enclosure Type: 
        <select id="enclosure" name="enclosure">
            <option value="1" selected="selected">Double Quotes (")</option>
            <option value="2">Single Quotes (\')</option>
        </select>

        <button type="submit" name="SubmitCSV" id="SubmitCSV" value="SubmitCSV" class="csvCol3Button buttonSmall">Upload File</button>

</form>

1 Ответ

1 голос
/ 02 декабря 2010

Простой ответ: Вы не можете загружать файлы через AJAX. Вам нужно будет отправить форму на другую страницу, а затем перейти оттуда.

Больше: Технически вы можете, но не так. Это включает создание iframe и передачу файлов через него. В любом случае вам нужно отправить сообщение обратно, вы не можете использовать объект XMLHttpRequest.

Если вы выполните быстрый поиск в Google , вы можете найти плагины, которые делают это для вас.

...