一个轻量级且支持AJAX的文件上传器插件,为通过AJAX上传单个或多个文件提供了方便的解决方案。
它允许用户从本地选择文件,在浏览器中预览文件,并在选择后自动上传这些文件。
1.在文档中加载jQuery Uploader插件的文件。
<!-- Font Awesome Iconic Font Is Required --> <link rel="stylesheet" href="/path/to/cdn/font-awesome.min.css"> <!-- jQuery Is Required --> <script src="/path/to/cdn/jquery.min.js"></script> <!-- jQuery Uploader Files --> <link rel="stylesheet" href="./css/jquery.uploader.css"> <script src="./dist/jquery.uploader.min.js"></script>
2.为文件上传器创建一个输入字段。
<input type="text" id="example" value="" />
3.初始化插件以创建一个基本的文件上传器。
$("#example").uploader({ // options })
4.启用多文件上传。
$("#example").uploader({ multiple: true, })
5.设置上传模式:“url”、“file”或“custom”。
$("#example").uploader({ mode: Uploader.mode.file, })
6.启用自动上传。默认值:true。
$("#example").uploader({ autoUpload: false, })
7.定义预先选择的文件。
$("#example").uploader({ defaultValue: [ { name: "jquery", url: "/path/to/jquery.jpg" }, { name: "script", url: "/path/to/script.png" } ], })
8.配置ajax上传。
$("#example").uploader({ ajaxConfig: { url: "", method: "post", paramsBuilder: function (uploaderFile) { let form = new FormData(); form.append("file", uploaderFile.file) return form }, ajaxRequester: function (config, uploaderFile, progressCallback, successCallback, errorCallback) { $.ajax({ url: config.url, contentType: false, processData: false, method: config.method, data: config.paramsBuilder(uploaderFile), success: function (response) { successCallback(response) }, error: function (response) { console.error("Error", response) errorCallback("Error") }, xhr: function () { let xhr = new XMLHttpRequest(); xhr.upload.addEventListener('progress', function (e) { let progressRate = (e.loaded / e.total) * 100; progressCallback(progressRate) }) return xhr; } }) }, responseConverter: function (uploaderFile, response) { return { url: response.data, name: null, } }, }, })
9.事件处理程序。
$("#example").uploader() .on("uploader-init", function() { // do something }, .on("before-upload", function(waitUploadFiles) { // do something }, .on("uploading", function(file) { // do something }, .on("upload-success", function(file, data) { // do something }, .on("upload-error", function() { // do something }, .on("file-add", function() { // do something }, .on("file-remove", function() { // do something },
10.API方法。
// upload files manually upload(); // clear all files clean(); // get all files uploadFiles();