千家信息网

如何使用WebUploader

发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,这篇文章给大家分享的是有关如何使用WebUploader的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML我们首先将css和相关js文件加载。 然后我们需要准备一个按
千家信息网最后更新 2025年02月16日如何使用WebUploader

这篇文章给大家分享的是有关如何使用WebUploader的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

HTML

我们首先将css和相关js文件加载。

然后我们需要准备一个按钮#imgPicker,和一个用来存放添加的文件信息列表的容器#fileList,在body中加入如下代码:

选择图片

JAVASCRIPT

首先创建Web Uploader实例:

var uploader = WebUploader.create({ auto: true, // 选完文件后,是否自动上传 swf: 'js/Uploader.swf', // swf文件路径 server: 'upload.php', // 文件接收服务端 pick: '#imgPicker', // 选择文件的按钮。可选 // 只允许选择图片文件。 accept: { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/*' } });

接着监听fileQueued事件,即当有文件添加进来的时候,通过uploader.makeThumb来创建图片预览图。

uploader.on( 'fileQueued', function( file ) { var $list = $("#fileList"), $li = $( '

' + '' + '

' + file.name + '

' + '

' ), $img = $li.find('img'); // $list为容器jQuery实例 $list.append( $li ); // 创建缩略图 uploader.makeThumb( file, function( error, src ) { if ( error ) { $img.replaceWith('不能预览'); return; } $img.attr( 'src', src ); }, 100, 100 ); //100x100为缩略图尺寸 });

最后是上传状态提示了,当文件上传过程中, 上传成功,上传失败,上传完成都分别对应uploadProgress, uploadSuccess, uploadError, uploadComplete事件。

// 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadProgress', function( file, percentage ) { var $li = $( '#'+file.id ), $percent = $li.find('.progress span'); // 避免重复创建 if ( !$percent.length ) { $percent = $('

') .appendTo( $li ) .find('span'); } $percent.css( 'width', percentage * 100 + '%' ); }); // 文件上传成功,给item添加成功class, 用样式标记上传成功。 uploader.on( 'uploadSuccess', function( file, res ) { console.log(res.filePath);//这里可以得到上传后的文件路径 $( '#'+file.id ).addClass('upload-state-done'); }); // 文件上传失败,显示上传出错。 uploader.on( 'uploadError', function( file ) { var $li = $( '#'+file.id ), $error = $li.find('p.error'); // 避免重复创建 if ( !$error.length ) { $error = $('

').appendTo( $li ); } $error.text('上传失败'); }); // 完成上传完了,成功或者失败,先删除进度条。 uploader.on( 'uploadComplete', function( file ) { $( '#'+file.id ).find('.progress').remove(); });

到这里,我们就实现了一个简单的图片上传实例,点击"选择图片"会弹出文件选择对话框,当选择图片后,即进入上传图片流程,会将图片对应的缩略图现实在列表里。

常用选项设置与事件调用

Web Uploader提供了丰富的API选项设置与事件调用。

参数描述默认值dnd[可选] 指定Drag And Drop拖拽的容器,如果不指定,则不启动。undefineddisableGlobalDnd[可选] 指定监听paste事件的容器,如果不指定,不启用此功能。此功能为通过粘贴来添加截屏的图片。建议设置为document.body.undefinedpick[可选], Object,指定选择文件的按钮容器,不指定则不创建按钮。 id {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。注意 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。label {String} 请采用 innerHTML 代替 innerHTML {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。multiple {Boolean} 是否开起同时选择多个文件能力。undefinedaccept[可选] 指定可接受的文件类型。title {String} 文字描述extensions {String} 允许的文件后缀,不带点,多个用逗号分割。mimeTypes {String} 多个用逗号分割。nullthumb{Object} [可选] 配置生成缩略图的选项。compress{Object} [可选] 配置压缩的图片的选项。如果此选项为false, 则图片在上传前不进行压缩。auto[可选] 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。falseruntimeOrder[可选] 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash. 可以将此值设置成 flash,来强制使用 flash 运行时。html5,flashchunked[可选] 是否要分片处理大文件上传。falsechunkSize[可选] 如果要分片,分多大一片? 默认大小为5M.5242880chunkRetry[可选]如果某个分片由于网络问题出错,允许自动重传次数。2threads[可选] 上传并发数。允许同时最大上传进程数。3formData[可选]文件上传请求的参数表,每次发送都会发送此对象中的参数。{}fileVal[可选] 设置文件上传域的name。filefileNumLimit[可选] 验证文件总数量, 超出则不允许加入队列。undefinedfileSizeLimit[可选] 验证文件总大小是否超出限制, 超出则不允许加入队列。undefinedfileSingleSizeLimit[可选] 验证单个文件大小是否超出限制, 超出则不允许加入队列。undefinedduplicate[可选] 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.undefined

常用的事件说明:

事件参数说明描述beforeFileQueuedfile {File}File对象当文件被加入队列之前触发,此事件的handler返回值为false,则此文件不会被添加进入队列。fileQueuedfile {File}File对象当文件被加入队列以后触发。filesQueuedfile {File}数组,内容为原始File(lib/File)对象。当一批文件添加进队列以后触发。fileDequeuedfile {File}File对象当文件被移除队列后触发。uploadStartfile {File}File对象某个文件开始上传前触发,一个文件只会触发一次。uploadBeforeSendobject {Object}data {Object}默认的上传参数,可以扩展此对象来控制上传参数。headers {Object}可以扩展此对象来控制上传头部。当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。uploadProgressfile {File}File对象percentage {Number}上传进度上传过程中触发,携带上传进度。uploadErrorfile {File}File对象reason {String}出错的code当文件上传出错时触发。uploadSuccessfile {File}File对象response {Object}服务端返回的数据当文件上传成功时触发。uploadCompletefile {File} [可选]File对象不管成功或者失败,文件上传完成时触发。

PHP处理文件上传

upload.php接收上传数据,将上传的文件保存到服务器相关目录,并将上传结果告知前端上传组件。

这里值得一提的是,如果设置了大文件分片上传,PHP将每次上传的小文件片临时保存,等最后文件片全部接收完毕后再将这些临时文件片组合,成为一个完整的大文件。

webuploader的分片上传是把文件分成若干份,然后向你定义的文件接收端post数据,如果上传的文件大于分片的尺寸,就会进行分片,然后会在post的数据中添加两个form元素chunk和chunks,前者标示当前分片在上传分片中的顺序(从0开始),后者代表总分片数。

感谢各位的阅读!关于"如何使用WebUploader"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

文件 对象 图片 选择 事件 队列 成功 参数 容器 按钮 大小 数据 进度 支持 内容 多个 实例 文字 过程 服务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 qq企业邮箱 邮件服务器 女生做软件开发的工作 极速现金侠链接服务器超时 服务器无法配置网络 深圳中小学生校园网络安全教育 网络安全口令至少包含多少种 计算机网络技术基础视频21 数据库表自动编号 江西百万网民学法律网络安全法 阳江招收计算机网络技术人员 服务器租用100m独享 沛县专业性软件开发答疑解惑 舆情监控软件开发需求 太库科技 互联网荣膺 数据库报告的记录 扬州免费无线网络安全吗 关于网络安全的作文2000 打开一个服务器的福字的图片 数据库中取出时间最早的 wps查找内容统一数据库 山东华云网络技术公司 股票分析有好的软件开发 网络安全知识内容过于真实 前沿网络技术5000字报告 信息与网络安全心得体会 有哪些刺激战场服务器 巨声网络技术 导致服务器崩溃带来的不好体验 闵行区海航软件开发有哪些 怀旧服联盟服务器最大上限
0