如何通过javascript写出异步图片上传?本文我们就和大家分享一些实例代码javascript实现异步图片上传。我们首先看下HTML代码实现的form提交部分。其中大家在测试的时候需要把test的URL更换成自己的,也可以直接写一个本地地址测试。

html代码:

保存

js代码:

var Fileupload = {

fileInput: $("#fileImage").get(0),

dragDrop: $("#fileDragArea").get(0),

upButton: $("#fileSubmit").get(0),

url: $("#uploadForm").attr("action"),

})(),

//文件上传

funUploadFile: function() {

var self = this;

for (var i = 0, file; file = this.fileFilter[i]; i++) {

(function(file) {

var xhr = new XMLHttpRequest();

if (xhr.upload) {

// 上传中

xhr.upload.addEventListener("progress", function(e) {

self.onProgress(file, e.loaded, e.total);

}, false);

// 文件上传成功或是失败

xhr.onreadystatechange = function(e) {

if (xhr.readyState == 4) {

if (xhr.status == 200) {

self.onSuccess(JSON.parse(xhr.responseText));

self.funDeleteFile(file);

if (!self.fileFilter.length) {

//全部完毕

self.onComplete();

}

} else {

self.onFailure(file, xhr.responseText);

}

}

};

//准备FormData对象

var myForm = document.getElementById('uploadForm');

//将文件放入FormData对象中

formData = new FormData(myForm);

// 开始上传

xhr.open("POST", self.url, true);

xhr.send(formData);

}

})(file);

}

},

init: function() {

var self = this;

//上传按钮提交

if (this.upButton) {

console.log('提示: 当前存储服务器地址', this.url)

this.upButton.addEventListener("click", function(e) {

self.funUploadFile(e);

}, false);

}

self.bindEvent();

}

};

Fileupload = $.extend(Fileupload);

Fileupload.init();

FormData 异步上传文件

一、创建FormData放入待上传文件

//准备FormData对象

var formData = new FormData(),

uploadFile = document.getElementById('file');

//将文件放入FormData对象中

formData.append('file', uploadFile.files[0]);

二、通过xhr发送FormData数据到服务器,实现文件上传

//创建xhr对象

var xhr = new XMLHttpRequest();

//监听文件上传进度

xhr.upload.onprogress = function(evt){

//lengthComputabel: 文件长度是否可计算

if(evt.lengthComputable){

//evt.loaded: 已下载的字节数

//evt.total: 文件总字节数

var percent = Math.round(evt.loaded*100/evt.total);

console.log(percent);

}

}

//监听文件传输开始

xhr.onloadstart = function(evt){

xhr.abort() //终止上传

}

//监听ajax成功完成事件

xhr.onload = function(evt){

...

}

//监听ajax错误事件

xhr.onerror = function(evt){

...

}

//监听ajax被中止事件

xhr.onabort = function(evt){

...

}

//监听传输结束事件: 不管成功或者失败都会触发

xhr.onloaded = function(evt){

...

}

//*发起ajax请求数据

xhr.open('POST', '/url', true);

xhr.send(formData);

以上内容就是javascript实现异步图片上传方法实例,希望能帮助到大家。

相关推荐:

php js 异步上传图片,javascript实现异步图片上传方法实例相关推荐

  1. JavaScript移动端图片上传方法

    移动端图片上传方法 实现效果 文件下载 http://files.cnblogs.com/files/sntetwt/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%9B%BE%E7%8 ...

  2. JS兼容各个浏览器的本地图片上传即时预览效果

    JS兼容各个浏览器的本地图片上传即时预览效果 很早以前 在工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简 ...

  3. php上传图片 中文,php图片上传方法

    php图片上传方法 发布于 2015-11-07 21:44:59 | 92 次阅读 | 评论: 0 | 来源: PHPERZ PHP开源脚本语言PHP(外文名: Hypertext Preproce ...

  4. jQuery-WEUI(jqweui)的Uploader图片上传方法2.0

    之前写了一篇关于用jqweui.cn库中的文件上传(uploader)+图片预览(Gallery)组合实现图片上传的方法,不过只能实现简单的将待上传图片插入到待上传图片预览列表和实现预览.删除功能.但 ...

  5. summernote 图片上传 php,summernote富文本图片上传方法重写

    网上很多关于summernote 图片上传 重写的方法,就是因为有很多,所有有一些乱的,或者说比较复杂的.今天我写的这个,非常的简单,从js,到后台 处理的方法,都有.希望能给需要的人一些帮助 js代 ...

  6. c ajax 上传图片,ajax +NodeJS 实现图片上传实例

    前台用jquery的ajax发请求,后台用NodeJS 的multer模块实现图片上传.这个demo给我的感悟是一定要自己能实现出来,而不是看了别人写好就直接"拿来"用 note( ...

  7. php 上传图片控件,ThinkPHP5.0实现图片上传插件实例分享

    thinkphp5.0 图片上传插件可预览裁剪图片和保存原图片,执行裁剪图片后会删除 裁剪的原图片目录,以便减少空间.具体实现代码大家参考下本文,希望能帮助到大家. 效果预览图: 该插件主要功能是:可 ...

  8. c ajax 上传图片插件,ajax实现图片上传和预览

    图片上传功能 html结构: ![](6f4fbfb7/addimg.png) 在html中input的type=file就可以实现文件的上传功能,在其属性中也包含一个accept='':可以限制文件 ...

  9. js表单提交,支持图片上传,包含后端php代码

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. <html><head><meta http-equiv="Conte ...

最新文章

  1. 8个必备的PHP功能开发
  2. STL中heap算法(堆算法)
  3. iTunes只能装C盘吗_C盘清理简单汇总
  4. 字符驱动之按键(四:poll机制)
  5. 安装vsphere update manager及注意事项
  6. Python编写只允许实例化一个对象的类
  7. Caffarelli 关于自由边界正则性的论文C1
  8. HDU3789 奥运排序问题【序列处理】
  9. wordpress 自定义_WordPress自定义帖子类型:它是什么以及如何创建?
  10. anaconda moviepy_Anaconda使用之安装篇(Windows)
  11. Charles抓包工具简单教程
  12. linux初级:用useradd SB2,来建立新账户时,显示 bash:useradd:command not found的解决方法
  13. 1988-2020年各省、分城乡基尼系数、基尼系数计算及相关经典文献、1978-2019年中国省市恩格尔系数表、泰尔指数计算模板、208个地级市和31个省、市城乡泰尔指数
  14. 定量风险分析技术__蒙特卡罗分析
  15. wooyun 历史资源汇总
  16. 安卓camera2 API获取YUV420_888格式详解
  17. Python爬取pilipili排行榜
  18. Gopher China 2021,未来可期
  19. Linux定时任务工具crontab详解及系统时间同步
  20. VS2017中解决MSB4030报错问题

热门文章

  1. Csharp关键字----delegate(委托)
  2. Python---根据字符串导入包(importlib)
  3. django(models)视图与html 简单的操作
  4. 逐个访问URL的每个查询字符串参数
  5. 7款外观迷人的HTML5/CSS3 3D特效按钮特效
  6. leetcode 113. 路径总和 II
  7. 北京超前布局通用人工智能 我国首个超大规模智能模型系统发布
  8. 人工智能带来科技浪潮的同时,对相关法治领域提出了什么样的挑战?
  9. Qt Creator中常用快捷键和小技巧
  10. word中将半角标点符号(如双引号等)转换为全角