1. 程式人生 > >Jquery FormData文件異步上傳 快速指南

Jquery FormData文件異步上傳 快速指南

toc eight 文件異步上傳 adc show too highlight 上傳 -name

網站中文件的異步上傳是個比較麻煩的問題,不過現在通過jquery 可以很容易的解決這個問題;

使用jquery2.1版本,較老版本不支持異步文件上傳功能;


表單代碼:

[html] view plain copy print?
  1. <form id="fileUploadForm">
  2. <input type="file" name="file" class="imageUpload"/>
  3. <span id="commit">提交到服務器</span>
  4. </form>
[html] view plain copy
print?
  1. <form id="fileUploadForm">
  2. <input type="file" name="file" class="imageUpload"/>
  3. <span id="commit">提交到服務器</span>
  4. </form>

創建一個表單,裏面包含一個file input


腳本代碼:

[javascript] view plain copy print?
  1. function uploadFile() {
  2. //將表單封裝為一個formData對象
  3. var formData = new FormData($(‘#fileUploadForm‘)[0]);
  4. $.ajax({
  5. url:‘http://127.0.0.1:8080/image/‘,
  6. type:‘POST‘,
  7. //將formData對象作為參數進行上傳
  8. data:formData,
  9. contentType: false,
  10. processData: false,
  11. success:function (data) {
  12. //文件上傳成功後的處理
  13. $(‘#showUploadContent‘).append(‘<div>name:‘+data.name+‘<br/>url:‘+data.url+‘<img src="http://192.168.1.107/‘+data.url+‘"></div>‘)
  14. }
  15. })
  16. }
  17. $(function () {
  18. //為提交按鈕添加點擊事件
  19. $(‘#commit‘).click(function () {
  20. uploadFile();
  21. })
  22. })
[javascript] view plain copy print?
  1. function uploadFile() {
  2. //將表單封裝為一個formData對象
  3. var formData = new FormData($(‘#fileUploadForm‘)[0]);
  4. $.ajax({
  5. url:‘http://127.0.0.1:8080/image/‘,
  6. type:‘POST‘,
  7. //將formData對象作為參數進行上傳
  8. data:formData,
  9. contentType: false,
  10. processData: false,
  11. success:function (data) {
  12. //文件上傳成功後的處理
  13. $(‘#showUploadContent‘).append(‘<div>name:‘+data.name+‘<br/>url:‘+data.url+‘<img src="http://192.168.1.107/‘+data.url+‘"></div>‘)
  14. }
  15. })
  16. }
  17. $(function () {
  18. //為提交按鈕添加點擊事件
  19. $(‘#commit‘).click(function () {
  20. uploadFile();
  21. })
  22. })


NOTE:提交按鈕使用<button/> <input type="submit"/> 的情況下將會頁面跳轉,我使用的是<span/>元素:

<span id="commit" >提交到服務器</span>

這樣進行文件上傳就不會出現頁面跳轉,達到異步上傳;

Jquery FormData文件異步上傳 快速指南