2016-05-11 153 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

我已經使用了多年特別是多文件上傳。好東西..這些插件有回調上傳進度..你可以做一個進度條或東西出來..

相關問題