基于WebUploader的JS图片上传功能封装与实现
作者:百宝袋时间:2026-10-22 06:36:54浏览:210
本文介绍如何使用WebUploader库封装前端图片上传功能。通过配置自动上传、文件限制(单文件1个,大小2MB)及格式白名单,结合客户端图片压缩(宽度300px,小于100KB不压缩)策略,优化上传体验。代码包含初始化配置、错误处理、完成重置及回调逻辑,适用于需要控制图片体积和格式的场景。
图片上传功能概述
本文提供了一套基于JavaScript的图片上传实现方案,供开发者参考具体代码细节。
核心功能通过封装JavaScript方法实现,旨在简化上传流程。
WebUploader配置与压缩策略
function uploadImages(picker, url, callback) {
var img_uploader = WebUploader.create({
auto: true,
server: url,
pick: picker,
fileNumLimit: 1,
fileSingleSizeLimit: 2097152, // 2M
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
// mimeTypes: 'image/*'
},
compress: {
width: 300,
compressSize: 102400 // < 100kb 不压缩
},
})
var fileType = ['image/jpeg', 'image/jpg', 'image/gif', 'image/png', 'image/bmp']
img_uploader.on('beforeFileQueued', function(file) {
fileType.some(function(name) {
return file.type === name
})
? '' : alert('请上传正确的图片!')
})
img_uploader.on('uploadSuccess', function(file, res) {
callback(file, res)
})
img_uploader.on('uploadError', function(file, reason) {
console.log(reason);
})
img_uploader.on('uploadComplete', function(file) {
img_uploader.reset()
})
}
在HTML结构中,需要预留用于触发上传选择的容器元素。
HTML触发元素结构
<div id="zTu">图片</div>
JavaScript部分负责初始化WebUploader实例,配置上传参数,并处理上传过程中的事件回调。
初始化与回调处理逻辑
var coverImage;
initImageUploader();
function initImageUploader(){
var fileUrl = 你想上传的地址;
uploadImages('#imagePicker', fileUrl, function(file, res) {
coverImage = res.url
$('#zTu').get(0).innerHTML = '<div class="file-item thumbnail"><img style="max-height:180px" src="' + res.url + '" /></div>'
})
}
上述内容涵盖了图片上传的核心逻辑,希望能为相关开发工作提供实用参考。
作者最新文章
JS中parseInt与Number转整数的核心区别及适用场景
2026-11-05 17:35:53
定制 Quill.js 主题样式:修改默认 CSS 与添加自定义类名
2026-11-04 11:21:35
混淆JS代码怎么在线反混淆并格式化阅读
2026-11-03 21:46:39
JS在线编辑器代码报错怎么调试?控制台使用技巧
2026-11-03 21:24:56
从 marked.js 旧版本升级到最新版:API 变更与迁移指南
2026-11-03 17:38:17
