2016-05-11 11 views
0

FormDataオブジェクトを使用してスプリングサーバーにファイルをアップロードしようとしています。そして、私はtype="file"の入力を隠します。しかし、私がフォームを提出すると、それは動作していません。私はどこが間違っているのか分かりません。FormDataを使用してサーバーにファイルをアップロードするにはどうすればよいですか?

これはhtmlの一部です。何らかのボタンをクリックすると、saveFiles()が呼び出されます。あなただけのファイルをアップロードするためFORMDATA使用することはできません

<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

。これには多くのオプションがあります。しかし、私はあなたにあまり複雑ではないものを与えてくれます。

は、このプラグインを使用してみてください:私は長年、特に、複数のファイルのアップロードのためにそれを使用してきた

jQuery Form

。良いこと..これらのプラグインは、アップロードの進捗状況のためのコールバックを持っています。あなたはプログレスバーなどを作ることができます..

関連する問題