又拍云异步上传实例教程详解


Posted in PHP onApril 19, 2016

网站静态文件存储在又拍云,之前上传是通过又拍云的的FORM API进行。

当产品经理歪着脑袋走向你的时候,哎呀呀,这用户信息这里,上传要无刷新的效果了。

 这他***,自己偷偷抱怨一会会,怎么搞喃?听说这家伙要一个好听的名字,异步上传,高大上档次挺像我的。

根据我们的观察,此处有两个重点:

①、怎么实现异步上传

②、怎么上传到又 拍 云

首先我们要实现异步上传,就需要利用js里面的FormData对象,据说,这家伙不支持ie6 7的,ie8就不太清楚了,据说哈,说错了不负责的。

不过喃,我们也不用考虑辣么多,前段时间都听说淘宝都要放弃ie6 7了,so 甭考虑辣么多了。ie6 7逮着ta估计都要骂ta小婊砸,竟然敢不支持我。

FormData是谁,这里就不多介绍了,可以自行百度。

我们先来看看view层怎么使用FormData这个小婊砸

<input type="file" accept="image/jpg,image/jpeg,image/png,image/gif" id="upload">
<input type="hidden" name="file">

如你所想,仅仅是一个input上传按钮和一个我们预留的准备接收图片地址的隐藏input

下面来看看JS是怎么愤怒的吧

<script type="text/javascript">
function($){
 //上传
 $("#upload").on("change", function () {
 //构造FormData对象并赋值
  var formData = new FormData();
  formData.append("policy", "//controller层传递过来upYun的policy配置");
  formData.append("signature", "//controller层传递过来upyun的signature配置");
  formData.append("file", $("#upload")[0].files[0]);
  $.ajax({
   url : "//处理上传的后端程序地址",
   type : "POST",
   data : formData,
   processData : false,
   contentType : false,
   beforeSend: function () {
    //可以做一些正在上传的效果
   },
   success : function(data) {
    //data,我们这里是异步上传到后端程序所返回的图片地址
   },
   error : function(responseStr) {
    console.log(responseStr);
   }
  });
 });
}($);
</script>

到此,我们已经实现了异步上传的前端代码,包括又拍云所需要的参数policy和signature

剩下的实现上传到又拍云就简单了,可以参考

https://github.com/upyun/php-sdk 进行处理

PHP 相关文章推荐
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
PHP 上传文件大小限制
Jul 05 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
php 数组的一个悲剧?
May 11 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
php利用事务处理转账问题
Apr 22 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
php微信高级接口群发 多客服
Jun 23 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 PHP
ThinkPHP中order()使用方法详解
Apr 19 #PHP
ThinkPHP中limit()使用方法详解
Apr 19 #PHP
ThinkPHP中where()使用方法详解
Apr 19 #PHP
yii2中的rules 自定义验证规则详解
Apr 19 #PHP
PHP序列化/对象注入漏洞分析
Apr 18 #PHP
php实现三级级联下拉框
Apr 17 #PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 #PHP
You might like
全文搜索和替换
2006/10/09 PHP
PHP中的类-什么叫类
2006/11/20 PHP
php在字符串中查找另一个字符串
2008/11/19 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
laravel自定义分页效果
2017/07/23 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
关于旅游的活动方案
2014/08/15 职场文书
计划生育汇报材料
2014/12/26 职场文书