支持AJAX 实时预览文件上传程序 jQuery上传程序.js

  • 源码大小:18.23KB
  • 所需积分:1积分
  • 源码编号:19JP-3509
  • 浏览次数:809次
  • 最后更新:2023年06月21日
  • 所属栏目:表单
本站默认解压密码:19jp.com 或 19jp_com

简介

一个轻量级且支持AJAX的文件上传器插件,为通过AJAX上传单个或多个文件提供了方便的解决方案。

它允许用户从本地选择文件,在浏览器中预览文件,并在选择后自动上传这些文件。

参见:

  • jQuery和Vanilla JavaScript中的10个最佳文件上传库

如何使用它:

1.在文档中加载jQuery Uploader插件的文件。

  1. <!-- Font Awesome Iconic Font Is Required -->
  2. <link rel="stylesheet" href="/path/to/cdn/font-awesome.min.css">
  3.  
  4. <!-- jQuery Is Required -->
  5. <script src="/path/to/cdn/jquery.min.js"></script>
  6.  
  7. <!-- jQuery Uploader Files -->
  8. <link rel="stylesheet" href="./css/jquery.uploader.css">
  9. <script src="./dist/jquery.uploader.min.js"></script>

2.为文件上传器创建一个输入字段。

  1. <input type="text" id="example" value="" />

3.初始化插件以创建一个基本的文件上传器。

  1. $("#example").uploader({
  2. // options
  3. })

4.启用多文件上传。

  1. $("#example").uploader({
  2. multiple: true,
  3. })

5.设置上传模式:“url”、“file”或“custom”。

  1. $("#example").uploader({
  2. mode: Uploader.mode.file,
  3. })

6.启用自动上传。默认值:true。

  1. $("#example").uploader({
  2. autoUpload: false,
  3. })

7.定义预先选择的文件。

  1. $("#example").uploader({
  2. defaultValue: [
  3. {
  4. name: "jquery",
  5. url: "/path/to/jquery.jpg"
  6. }, {
  7. name: "script",
  8. url: "/path/to/script.png"
  9. }
  10. ],
  11. })

8.配置ajax上传。

  1. $("#example").uploader({
  2. ajaxConfig: {
  3. url: "",
  4. method: "post",
  5. paramsBuilder: function (uploaderFile) {
  6. let form = new FormData();
  7. form.append("file", uploaderFile.file)
  8. return form
  9. },
  10. ajaxRequester: function (config, uploaderFile, progressCallback, successCallback, errorCallback) {
  11. $.ajax({
  12. url: config.url,
  13. contentType: false,
  14. processData: false,
  15. method: config.method,
  16. data: config.paramsBuilder(uploaderFile),
  17. success: function (response) {
  18. successCallback(response)
  19. },
  20. error: function (response) {
  21. console.error("Error", response)
  22. errorCallback("Error")
  23. },
  24. xhr: function () {
  25. let xhr = new XMLHttpRequest();
  26. xhr.upload.addEventListener('progress', function (e) {
  27. let progressRate = (e.loaded / e.total) * 100;
  28. progressCallback(progressRate)
  29. })
  30. return xhr;
  31. }
  32. })
  33. },
  34. responseConverter: function (uploaderFile, response) {
  35. return {
  36. url: response.data,
  37. name: null,
  38. }
  39. },
  40. },
  41. })

9.事件处理程序。

  1. $("#example").uploader()
  2. .on("uploader-init", function() {
  3. // do something
  4. },
  5. .on("before-upload", function(waitUploadFiles) {
  6. // do something
  7. },
  8. .on("uploading", function(file) {
  9. // do something
  10. },
  11. .on("upload-success", function(file, data) {
  12. // do something
  13. },
  14. .on("upload-error", function() {
  15. // do something
  16. },
  17. .on("file-add", function() {
  18. // do something
  19. },
  20. .on("file-remove", function() {
  21. // do something
  22. },

10.API方法。

  1. // upload files manually
  2. upload();
  3.  
  4. // clear all files
  5. clean();
  6.  
  7. // get all files
  8. uploadFiles();

预览截图