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


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 相关文章推荐
如何在PHP中使用Oracle数据库(4)
Oct 09 PHP
PHP安装攻略:常见问题解答(三)
Oct 09 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
Jul 07 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 PHP
设定php简写功能的方法
Nov 28 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
第四章 php数学运算
2011/12/30 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
python的常见命令注入威胁
2013/02/18 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
linux比较文件内容的命令是什么
2015/09/23 面试题
建筑工程毕业生自我鉴定
2014/01/14 职场文书
安全检查与奖惩制度
2014/01/23 职场文书
信用卡工资证明格式
2014/09/13 职场文书
语文教师个人工作总结
2015/02/06 职场文书
清明节寄语2015
2015/03/23 职场文书
学校捐书倡议书
2015/04/27 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript