HTML5技术

怎样实现前端裁剪上传图片功能 - 会编程的银猪(3)

字号+ 作者:H5之家 来源:H5之家 2016-10-19 13:00 我要评论( )

文件上传只能通过表单提交的形式,编码方式为multipart/form-data,这个我在《三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader》已做详细讨论,可以通过写一个form标签进行提交,但也可以模拟表单提

文件上传只能通过表单提交的形式,编码方式为multipart/form-data,这个我在《三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader》已做详细讨论,可以通过写一个form标签进行提交,但也可以模拟表单提交的格式,表单提交的格式在那篇文章已提及。

首先创建一个ajax请求:

 

 

 

 

 

 

JavaScript

 

1

2

3

4

并设置编码方式,然后拼表单格式的数据进行上传:

ajax上传

 

 

 

 

 

 

JavaScript

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

    //name=data

    //name=docName

表单数据不同的字段是用boundary的随机字符串分隔的。拼好之后用sendAsBinary发出去,在调这个函数之前先监听下它的事件,包括
1) 上传的进度:

上传进度

 

 

 

 

 

 

JavaScript

 

1

2

3

4

5

    }

};

这里凋duringCallback的回调函数,给这个回调函数传了当前进度的参数,用这个参数就可以设置进度条的过程了。进度条可以自己实现,或者直接上网找一个,随便一搜就有了。
2) 成功和失败:

成功和失败回调

 

 

 

 

 

 

JavaScript

 

1

2

3

4

5

6

7

8

9

10

11

    }

};

这个上传功能参考了一个JIC插件

至此整个功能就拆解说明完了,上面的代码可以兼容到IE10,FileReader的api到IE10才兼容,问题应该不大,因为微软都已经放弃了IE11以下的浏览器,为啥我们还要去兼容呢。

这个东西一来减少了后端的压力,二来不用和后端来回交互,对用户来说还是比较好的,除了上面说的一个地方会被卡一下之外。核心代码已在上面说明,完整代码和demo就不再放出来了。

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Web前端课程大酬宾啦..... - y叮当

    Web前端课程大酬宾啦..... - y叮当

    2016-10-18 17:00

  • HTML常用文本元素 - 艾前端

    HTML常用文本元素 - 艾前端

    2016-10-16 15:11

  • WEB前端工程师(实践)制作天气预报难度:简单 - SessionOne

    WEB前端工程师(实践)制作天气预报难度:简单 - SessionOne

    2016-10-16 14:00

  • 前端小游戏制作【戳泡泡】 - 墨芈

    前端小游戏制作【戳泡泡】 - 墨芈

    2016-10-16 12:00

网友点评
p