https://www.plupload.com/
(1)HTML结构:
(2)js: 实例化->初始化->事件监听
以自己的本地项目为例
//实例化uploader对象
var uploader = new plupload.Uploader({
browse_button: 'select',
url: 'url',
flash_swf_url: 'Moxie.swf',
silverlight_xap_url: 'Moxie.xap',
init: {
Error: function(up, err) {
//当服务器端返回错误信息时error方法显示错误提示
//关于错误码提示,可查看api文档
if(err.code == -200) {mime_types: [{
//限制仅可上传压缩文件
title: "Zip files",});
//初始化
uploader.init();
//绑定事件
uploader.bind('FilesAdded',function(uploader,files){
//生成上传div
plupload.each(files, function(file) {
document.getElementById('ossfile').innerHTML += '
//单文件限制
if(uploader.files.length > 1) {uploader.bind('UploadProgress',function(uploader,file){
//上传进度样式控制
var d = document.getElementById(file.id);});
//上传按钮
$('#start').click(function() {
uploader.start(); //开始上传
});
//处理上传完成返回值
var filename;
uploader.bind('FileUploaded', function(uploader, file, result) {
var resdata = $.parseJSON(result.response);
filename = resdata.data;
});
至此,基本的文件上传已全部完成(包含文件个数限制,上传进度显示,错误提示)
如特殊需要上传至阿里云可参考OSS web直传 https://help.aliyun.com/document_detail/31925.html?spm=a2c4g.11186623.6.634.3bJ4Q4
个人认为写的比较全面,同时阿里云对文件名进行了随机生成处理,防止存储重名文件带来的麻烦。