2016-05-11 2 views
0

Я пытаюсь загрузить файл на весенний сервер, используя FormData объект. И я скрываю ввод для type="file". Однако, когда я отправляю форму, она не работает. Я не знаю, где это неправильно.Как я могу загрузить файл на сервер с помощью FormData?

Это часть html. когда нажата какая-либо кнопка, вызывается saveFiles().

<script src="http://malsup.github.com/jquery.form.js"></script> 
 

 
<form name="fileForm" id="fileForm" method="post" enctype="multipart/form-data"> 
 
    <input style="display:none" type="file" id="fileSelector" name="fileSelector" multiple="" /> 
 
    <input type="hidden" id="docId" value="${doc.id}" /> 
 
    <div id="files"></div> 
 
</form> 
 

 
(function (global, $) { 
 
    ... 
 
    initFilehandler(); 
 
    ... 
 
} 
 

 
function initFilehandler() { 
 
    document.querySelector('#fileSelector').addEventListener('change', handleFileSelect, false); 
 
    selDiv = document.querySelector("#files"); 
 
} 
 

 
function saveFiles() { 
 
    $("form#fileForm").submit(function(event){ 
 
    event.preventDefault(); 
 
    
 
    var formData = new FormData($(this)[0]); 
 
    
 
    console.log(formdata); 
 
    $.ajax({ 
 
     url: "/rd/file/save", 
 
     type: "POST", 
 
     data: formData, 
 
     async: false, 
 
     cache: false, 
 
     contentType: false, 
 
     processData: false, 
 
     success: function() { 
 
     alert("success"); 
 
     } 
 
    }); 
 
    }); 
 
}

ответ

0

Вы не можете просто использовать FormData для загрузки файлов. Для этого есть много вариантов. Но я даю вам менее сложную задачу.

Попробуйте использовать этот плагин:

jQuery Form

Я использую, что в течение многих лет, особенно загрузки нескольких файлов. Хорошая вещь .. у этих плагинов есть обратный вызов для загрузки. Вы можете сделать индикатор выполнения или что-то в этом роде.

Смежные вопросы