• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5-WebSocket实现多文件同时上传

HTML5-WebSocket实现多文件同时上传

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5教程,HTML5中国,HTML5-WebSocket实现多文件同时上传,html5cn,html5资料,htm等相关知识,匿名希望在学习及工作中可以帮助到您

在传统的HTTP应用上传文件想要同时上传多个文件并查看上传进度是一件很麻烦的事情,当然现在也有一些基于SWF的文件上传组件提供这种的便利性.到了HTML5下对文件的读取和上传的控制方面就非常灵活,HTML5提供一系列的AIP进行文件读取,包括计取文件某一块的内容也非常方便,结合Websocket进行文件的传输就变得更加方便和灵活.下面通过使用HTML5结合websocet简单地实现多文件同时上传应用。

实现功能

大概预览一下需要做的功能:



主要功能是用户可以直接把文件夹的文件直接拖放到网页中,并进行上传,在上传的过程中显示上传进度信息.


FileInfo类封装

为了方便读取文件信息,在原有File的基础封装了一个简单文件信息读取的对象类.

(Math.floor(this.Size % this.PageSize) > 0) { { () { () { binary = '' bytes = new Uint8Array(this.DataBuffer) len = bytes.byteLength; (var i = 0; i < len; i++) { window.btoa(binary); (evt) { obj = evt.target["tag"]; (evt.target.readyState == FileReader.DONE) { (obj.LoadCallBack != null) { (obj.UploadError != null) (completed) { (this.filereader == null || this.filereader == undefined) FileReader(); reader = this.filereader; count = this.Size - this.PageIndex * this.PageSize; (count > this.PageSize) blob = this.File.slice(this.PageIndex * this.PageSize, this.PageIndex * this.PageSize + count); (file) { channel = file._channel; url = file._url; (result) { (result.status == null || result.status == undefined) { (file.UploadProcess != null) (file.PageIndex < file.Pages) { { (file.UploadError != null) (channel, url) { fi = this; (result) { (result.status == null || result.status == undefined) { { (file.UploadError != null)


类的处理很简单,通过file初始化并指定分块大小来实始化一些文件信息,如页数量页大小等.当然最重要还封装文件对应的Upload方法,用于把文件块信息打包成base64信息通过Websocket的方式发送到服务器。


文件拖放

在HTML5中接受系统文件拖放进来并不需要做复杂的事情,只需要针对容器元素绑定相关事件即可.

onDragOver(e) { onDragLeave(e) { onDrop(e) { readFileSize = 0; files = e.dataTransfer.files; (files.length > 0) {


只需要在onDrop过程中获取相关拖放文件即可,这些可能通过一些HTML5的教程可以得到帮助,详细看http://www.html5rocks.com/zh/tutorials/file/dndfiles/


这时候只需要针对选择的文件构建相关FileInfo对象,并调用上传方法即可.

(files.length > 0) { (var i = 0; i < files.length; i++) { info = new FileInfo(files[i], 32768);


通过UploadProcess事件对上传文件进度信息进行一个设置更新

+ file.ID).progressbar({ value: (file.PageIndex / file.Pages) * 100, + file.UploadBytes + '/' + file.Size + ']'


C#服务端

借助于Beetle对websocket的支持对应服务端的实现就非常简单了

您可能想查找下面的文章:

  • 一款利用html5和css3动画排列人物头像的实例演示
  • html5教程调用绘图api画简单的圆形代码分享
  • html5教程画矩形代码分享
  • html5教程制作简单画板代码分享
  • html5基础教程常用技巧整理
  • html5教程-Canvas入门
  • html5教程画矩形代码分享
  • HTML5晃动DeviceMotionEvent事件
  • HTML5教程之html 5 本地数据库(Web Sql Database)
  • HTML5中对contenteditable属性的解释与规定

相关文章

  • 2018-12-03HTML5画布下js的文字云/标签云效果-D3 Cloud
  • 2018-12-03canvas实现爱心和彩虹雨的效果
  • 2018-12-03HTML在线编辑器的调用方法和使用方法
  • 2018-12-03HTML5视频播放器<video>和音频播放器<audio>用法
  • 2018-12-03HTML5实战教程———开发一个简单漂亮的登录页面
  • 2018-12-03分享一个用html5实现炮弹自由落体的实例代码
  • 2018-12-03详细介绍HTML5 File api实现断点续传
  • 2018-12-03H5图像遮罩
  • 2017-08-06HTML5 预加载让页面得以快速呈现
  • 2018-12-03如何评价天凤最近开始测试的 Web 版?

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 原生js 有没有 手机移动端 滑动 的事件?
    • 有Dreamweaver这类工具,为什么还要学习HTML和CSS?
    • 详细介绍25+免费的Bootstrap HTML5网站模板图文详情
    • HTML5实战与剖析之表单——自动获取焦点属性(autofocus属性)
    • Html5+JS实现手机摇一摇功能_html5教程技巧
    • Canvas学习系列一:初识canvas
    • canvas需要在标签里直接定义宽高_html5教程技巧
    • 带你认识HTML5中的WebSocket
    • html5配合css3实现带提示文字的输入框(摆脱js)
    • fps页游,数据传输技术方案是怎么样的?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有