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


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 相关文章推荐
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
php身份证号码检查类实例
Jun 18 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
PHP对象实例化单例方法
Jan 19 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 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
汉字转化为拼音(php版)
2006/10/09 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
jscript之Read an Excel Spreadsheet
2007/06/13 Javascript
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
JavaScript浏览器选项卡效果
2010/08/25 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
python中sys.argv函数精简概括
2018/07/08 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python实现八皇后问题示例代码
2018/12/09 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
校园报刊亭的创业计划书
2014/01/02 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
Redis唯一ID生成器的实现
2022/07/07 Redis
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技