上传图片到七牛云之刨坑记

七牛云

七牛云

一、为啥会选择七牛?

为什么越来越多的公司用七牛来作为存储数据的容器?

官方解说:

  • 提供图片裁剪、缩放、格式转化、水印、原图保护和防盗链,以及音视频转码、切片和拼接等基础的数据处理服务
  • 允许用户构建、上传自定义的私有数据处理服务,支持管道处理、持久化、预处理操作等所有特性。
  • 作为一个开放的应用平台,欢迎各种图片、音视频、以及其他数据处理的第三方应用提供方接入,为七牛存储中的海量数据,提供增值的数据处理服务。

我说:
反正好使就行


没关系,笑一笑就好了 - - !

二、正式步入正题

需求:上传六张图片到七牛云,吧啦吧啦吧啦.....

七牛云提供的官方SDK

官方SDK

本次主要介绍JavaScript(好像目前也只会这一个,哈哈 - - !),大家可以先去浏览一遍官方文档 七牛云 大概了解一下。

三、开始吧啦吧啦吧啦

  • 1.我们需要写一个点击的对象以及展示的容器,类似,这个:


    上传必须品ing
    1. 需要引入的文件
<script src="{{ asset('js/qiniu.js') }}"></script>
<script src="{{ asset('js/moxie.js') }}"></script>
<script src="{{ asset('js/plupload.dev.js') }}"></script>
  • 3.上传代码:
var photo_path_arr = []; // 创建存图片数组
var qiniuUploader_p='';
qiniuUploader_p =  Qiniu.uploader({
    runtimes: 'html5,flash,html4', // 上传模式,依次退化
    browse_button:'addphotoes',   // 上传选择的点选按钮,**必需**
    max_file_size: '1024mb',   // 最大文件体积限制
    flash_swf_url: '{{ asset('js/Moxie.swf') }}', // 引入flash,相对路径
    dragdrop: true,         // 开启可拖曳上传
    chunk_size: '4mb',  // 分块上传时,每块的体积
    unique_names: false,   //  默认false,key为文件名。若开启该选项,JS-SDK会为每个文件自动生成key(文件名)
    max_retries: 3, // 上传失败最大重试次数
    // 文件类型过滤,这里限制为图片类型
    filters : {
       max_file_size : '1024mb',
       prevent_duplicates: true,
       mime_types: [
            {title : "Image files", extensions : "png,jpg,jpeg"}
       ]
    },
    multi_selection: true,  // 是否允许同时选择多文件
    get_new_uptoken: false, // 设置上传文件的时候是否每次都重新获取新的token
    // 从后台获取token值
    uptoken_func: function (file) {
        $.ajax({
             type: 'GET',
             url:"",
             async: false,
             success:function(result){
                 result = eval("("+result+")");
                 token = result;
                 return token;
              },
              error: function(result){
                 console.log(result)
              }
      })
      return token;
  },
  domain: '', // 七牛云存储空间域名
  auto_start: true,  // 自动上传
  log_level: 5,
  init: {
        'FilesAdded': function (up, files) {
             plupload.each(files, function (file) {
                // 文件添加进队列后,处理相关的事情

              });
          },
          'BeforeUpload': function (up, file) {
               // 每个文件上传前,处理相关的事情

           },
           'UploadProgress': function (up, file) {
               // 每个文件上传时,处理相关的事情

            },
            'UploadComplete': function () {
                // 队列文件处理完毕后,处理相关的事情           
             },
             'FileUploaded': function (up, file, info) {
                // 每个文件上传完毕后,处理相关的事情   
                var html;
                let src = JSON.parse(info).key; // 七牛云返回的key
                photo_path_arr.push(src);
                // 限制用户只能上传6张图片
                if($(".nowimgmodel").length < 6) {
                    for(var i = 0; i < photo_path_arr.length; i++) {
                          var smallsrc = photo_path_arr[i] + '?imageView2/2/w/800'; // 避免图片太大页面加载慢
                          html = `<div class="nowimgmodel col-sm-4">
                                    <div class="nowimg">
                                        <img data-url='' class="delphoto" onclick="delectPhoto(this)"  src="{{ asset('img/PC/delect.png') }}" alt="">
                                        <img class="photoinfo" src='${smallsrc}' alt="">
                                    </div>
                                    <div class="small_shadow"></div>
                                </div>`;
                     }
                 } else {
                      swal({title: '最多上传6张图片', timer: 5000, type: 'error'});
                       return false;
                 }
                 $("#addmodeles").append(html);
                  qiniuUploader_p.removeFile(file);
             },
            'Error': function (up, err, errTip) {
                 // 返回错误信息
                 swal({title: err, timer: 5000, type: 'error'});           
            },
            'Key': function (up, file) {
                // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
                // 该配置必须要在 unique_names: false , save_key: false 时才生效
                var name =file.name;
                var key =new Date().getFullYear()+""+(new Date().getMonth() + 1)+""+new Date().getDate() +""+new Date().getHours() +""+new Date().getMinutes() +""+(Math.floor(Math.random () * 900) + 100)+name.substr(name.lastIndexOf("."));  // 添加时间戳+随机数,避免文件名重复
              // do something with key
              return key;
            }
      }
}) 
  • 4.上传完毕示例图


    上传结束示例图.png

图片(限制张数)上传到七牛云简单介绍完毕,还是要根据各个小伙伴公司产品需求来写啦,其中一些细节的点大家可以去七牛云官网上了解一下,以及对于图片的处理,也阔以去官方多学习几个方法,之后也会不定期更新用七牛云上传图片,音频,视频,等等等...,小伙伴有什么更好的提议阔以在下面留言,蟹蟹~~

程序猿小伙伴们注意保暖哈
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容