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


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 xml文件操作实现代码(二)
Mar 20 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
浅析php中三个等号(===)和两个等号(==)的区别
Aug 06 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
PHP的PSR规范中文版
Sep 28 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
python3实现读取chrome浏览器cookie
2016/06/19 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
大学生旅游业创业计划书
2014/01/29 职场文书
社区安全检查制度
2014/02/03 职场文书
公司停电通知
2015/04/15 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL