Html5+Mui前端框架,开发记录(三):七牛云 上传图片

1.Html界面:

1 <div id="container">
2     <label>凭证:</label>
3         <div id="uploadImage" class="mui-btn" style="float: left; margin-top: 5px;text-align: center;padding:10px;width: 100px;">选择图片
4         </div>
5         <br/><br/>
6     <div class="upload-progress" id="imgs" style=" margin-top: 5px;">
7          </div>
8 </div>                        

2.引用js

1 <script src="https://cdn.staticfile.org/plupload/2.1.9/plupload.full.min.js"></script>
2 <script src="js/qiniu.min.js"></script>

3.js上传图片:首先获取Token值,一定是页面开始加载就执行此代码

mui.ajax({
    url: getAddress() + ‘/api/Qiliu/get?jsoncallback=?‘,
    data: {},
    async: false,
    dataType: ‘json‘,
    crossDomain: true, //强制使用5+跨域
    type: ‘get‘,
    timeout: 10000,
    success: function(data)
              {
        token = data;
        ar uploader = Qiniu.uploader({
                 runtimes: ‘html5,flash,html4‘, //上传模式,依次退化
                 browse_button: ‘uploadImage‘, //上传选择的点选按钮,**必需**
                 //uptoken_url: , //Ajax请求upToken的Url,**强烈建议设置**(服务端提供)
                 uptoken:token, //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
                 // unique_names: true, // 默认 false,key为文件名。若开启该选项,SDK为自动生成上传成功后的key(文件名)。
                 // save_key: true,   // 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`,则开启,SDK会忽略对key的处理
                 //domain: ‘‘, //bucket 域名,下载资源时用到,**必需**
                 get_new_uptoken: true, //设置上传文件的时候是否每次都重新获取新的token
                 container: ‘container‘, //上传区域DOM ID,默认是browser_button的父元素,
                 max_file_size: ‘100mb‘,           //最大文件体积限制
                 filters: {
                 mime_types: [               //文件类型过滤,这里限制为图片类型
                {title: "Image files", extensions: "jpg,jpeg,gif,png"}
            ]
        },

                 flash_swf_url: ‘js/plupload/Moxie.swf‘, //引入flash,相对路径
                 max_retries: 3, //上传失败最大重试次数
                 dragdrop: true, //开启可拖曳上传
                 drop_element: ‘container‘, //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
                 chunk_size: ‘4mb‘, //分块上传时,每片的体积
                 auto_start: true, //选择文件后自动上传,若关闭需要自己绑定事件触发上传
                 init: {
                 ‘FilesAdded‘: function(up, files) {
                       }
                  plupload.each(files, function(file) {
                  //
                 // 文件添加进队列后,处理相关的事情
                 //
                 //
                 if (!files.match(/.jpg|.gif|.png|.bmp/i)) { //判断上传文件格式
                //
                return mui.alert("上传的图片格式不正确,请重新选择!");
                //
                }
                //
               var s = document.getElementById(‘imgs‘);
               s.innerHTML="";
               fd="";
               });
                },
              ‘BeforeUpload‘: function(up, file) {
              // 每个文件上传前,处理相关的事情
              console.log("开始上传之前");
               },
             ‘UploadProgress‘: function(up, file) {
             console.log("上传中");
             // 每个文件上传时,处理相关的事情
              },
              ‘FileUploaded‘: function(up, file, info) {
               // 每个文件上传成功后,处理相关的事情
               // 其中 info.response 是文件上传成功后,服务端返回的
              json,形式如
           // {
           //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
           //    "key": "gogopher.jpg"
           //  }
           //var domain = up.getOption(‘domain‘);
           // var res = parseJSON(info.response);           var res = JSON.parse(info.response);},
           ‘Error‘: function(up, err, errTip) {                console.log(‘error============‘+errTip);              //上传出错时,处理相关的事情               },                                                                    ‘UploadComplete‘: function() {                                                                      //队列文件处理完毕后,处理相关的事情  },                                     ‘Key‘: function(up, file) {
         // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
         // 该配置必须要在 unique_names: false , save_key: false 时才生效
         var key =new Date().getTime();
         // do something with key here
         return key
                                }
                            }
                  });
    }
});

4.公众号展示图片

1)引用css

1 <link rel="stylesheet" href="../css/imageview.css" />
2 <link rel="stylesheet" href="../css/mui.imageviewer.css" />
  1 .mui-preview-image.mui-fullscreen {
  2     position: fixed;
  3     z-index: 20;
  4     background-color: #000;
  5 }
  6 .mui-preview-header,
  7 .mui-preview-footer {
  8     position: absolute;
  9     width: 100%;
 10     left: 0;
 11     z-index: 10;
 12 }
 13 .mui-preview-header {
 14     height: 44px;
 15     top: 0;
 16 }
 17 .mui-preview-footer {
 18     height: 50px;
 19     bottom: 0px;
 20 }
 21 .mui-preview-header .mui-preview-indicator {
 22     display: block;
 23     line-height: 25px;
 24     color: #fff;
 25     text-align: center;
 26     margin: 15px auto 4;
 27     width: 70px;
 28     background-color: rgba(0, 0, 0, 0.4);
 29     border-radius: 12px;
 30     font-size: 16px;
 31 }
 32 .mui-preview-image {
 33     display: none;
 34     -webkit-animation-duration: 0.5s;
 35     animation-duration: 0.5s;
 36     -webkit-animation-fill-mode: both;
 37     animation-fill-mode: both;
 38 }
 39 .mui-preview-image.mui-preview-in {
 40     -webkit-animation-name: fadeIn;
 41     animation-name: fadeIn;
 42 }
 43 .mui-preview-image.mui-preview-out {
 44     background: none;
 45     -webkit-animation-name: fadeOut;
 46     animation-name: fadeOut;
 47 }
 48 .mui-preview-image.mui-preview-out .mui-preview-header,
 49 .mui-preview-image.mui-preview-out .mui-preview-footer {
 50     display: none;
 51 }
 52 .mui-zoom-scroller {
 53     position: absolute;
 54     display: -webkit-box;
 55     display: -webkit-flex;
 56     display: flex;
 57     -webkit-box-align: center;
 58     -webkit-align-items: center;
 59     align-items: center;
 60     -webkit-box-pack: center;
 61     -webkit-justify-content: center;
 62     justify-content: center;
 63     left: 0;
 64     right: 0;
 65     bottom: 0;
 66     top: 0;
 67     width: 100%;
 68     height: 100%;
 69     margin: 0;
 70     -webkit-backface-visibility: hidden;
 71 }
 72 .mui-zoom {
 73     -webkit-transform-style: preserve-3d;
 74     transform-style: preserve-3d;
 75 }
 76 .mui-slider .mui-slider-group .mui-slider-item img {
 77     width: auto;
 78     height: auto;
 79     max-width: 100%;
 80     max-height: 100%;
 81 }
 82 .mui-android-4-1 .mui-slider .mui-slider-group .mui-slider-item img {
 83     width: 100%;
 84 }
 85 .mui-android-4-1 .mui-slider.mui-preview-image .mui-slider-group .mui-slider-item {
 86     display: inline-table;
 87 }
 88 .mui-android-4-1 .mui-slider.mui-preview-image .mui-zoom-scroller img {
 89     display: table-cell;
 90     vertical-align: middle;
 91 }
 92 .mui-preview-loading {
 93     position: absolute;
 94     width: 100%;
 95     height: 100%;
 96     top: 0;
 97     left: 0;
 98     display: none;
 99 }
100 .mui-preview-loading.mui-active {
101     display: block;
102 }
103 .mui-preview-loading .mui-spinner-white {
104     position: absolute;
105     top: 50%;
106     left: 50%;
107     margin-left: -25px;
108     margin-top: -25px;
109     height: 50px;
110     width: 50px;
111 }
112 .mui-preview-image img.mui-transitioning {
113     -webkit-transition: -webkit-transform 0.5s ease, opacity 0.5s ease;
114     transition: transform 0.5s ease, opacity 0.5s ease;
115 }
116 @-webkit-keyframes fadeIn {
117     0% {
118         opacity: 0;
119     }
120     100% {
121         opacity: 1;
122     }
123 }
124 @keyframes fadeIn {
125     0% {
126         opacity: 0;
127     }
128     100% {
129         opacity: 1;
130     }
131 }
132 @-webkit-keyframes fadeOut {
133     0% {
134         opacity: 1;
135     }
136     100% {
137         opacity: 0;
138     }
139 }
140 @keyframes fadeOut {
141     0% {
142         opacity: 1;
143     }
144     100% {
145         opacity: 0;
146     }

2)引用js

1 <script type="text/javascript" src="../js/mui.imageViewer.js" ></script>
2 <script type="text/javascript" src="../js/mui.previewimage.js" ></script>
3 <script type="text/javascript" src="../js/mui.zoom.js" ></script>

3)html

1 <div class="mui-input-row" style="height: 350px;">
2     <label>图片:</label>
3     <div class="upload-progress" id="imgs"></div>
4 </div>

4)js

 1                     var s = document.getElementById(‘imgs‘);
 2                     var imgs=data[0].Pzimg;
 3                     var img =[];
 4                     img=imgs.split(‘,‘);
 5                     for(var i=0;i<img.length-1;i++){
 6                             result = ‘<div id="result" style="float:left;margin-top: 5px;"><img style="height: 100px; width:100px "  data-preview-src=""  data-preview-group="1"  src="‘ +
 7                         img[i] + ‘" /></div>‘;
 8                         div = document.createElement(‘div‘);
 9                         div.innerHTML = result;
10                     s.appendChild(div);    

原文地址:https://www.cnblogs.com/bonnie-w/p/10749270.html

时间: 2024-10-14 04:12:18

Html5+Mui前端框架,开发记录(三):七牛云 上传图片的相关文章

基于gulp的前端框架开发规范

前端开发及相关规范 - 基于gulp的前端框架开发规范 1.前端开发工具的安装和使用说明 前端开发工具的目录结构 htmlcodeBuilder - v0.9 ├── statics ├── html //静态文件开发 ├── js // 非require引入的js文件 ├── Lib // 第三方JS包 ├── ve_2_1 // ├── css // 样式目录 ├── fonts // bootstrap的图标字体 ├── img // 图片目录 ├── less // less源码 ├──

MVVM开源框架Knot.js 教程2 - 大幅改变前端框架开发体验的Debugger

Knotjs教程系列 1.CBS初步 2.Knot.js Debugger(本文) ....持续增加中 Knot.js 教程2 - 改变前端框架开发体验的Debugger Debugger只是一个方便开发的附属工具,按道理说是不值得单独为之写一篇文章的.不过Knot.js的Debugger绝对值得一篇文章. 有过框架开发体验的朋友一定多少都有过和框架搏斗的经验.一个小小的设置错误,由于你对框架的不够熟悉,导致出错后完全摸不到头脑.或者被迫在一堆陌生的代码中跟踪尝试找出问题,或者只有上网到处拉人提

1.VUE前端框架学习记录一

VUE前端框架学习记录一文字信息没办法描述清楚,主要看编码实战里面,有附带有一个完整可用的Html页面,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/file/f0a6c2f23b97d0371032c408e7659917?token=2fd9d925d380fc1d 原文地址:https://www.cnblogs.com/jtfr/p/11185262.html

目前几款基于html5的前端框架:如Bootstrap、Foundation、Semantic UI 、Amaze UI

Bootstrap是由Twitter在2011年8月推出的开源WEB前端框架,集合CSS 和HTML,使用了最新的浏览器技术,为快速WEB开发提供了一套前端工具包,包括布局.网格.表格.按钮.表单.导航.提示,其核心就是基于Less框 架构建的CSS.Bootstrap框架拥有美观的样式和封装完善的JQ插件,使用方便,基于Bootstrap的扩展也很多,这是其他框架所无法比拟 的,也是其最受欢迎的条件之一. Foundation宣称是世界最好的响应式前端框架,默认支持5种网格布局,是三款框架中最

React前端框架开发入门

对Facebook推出的React仰慕已久,一直没有找到合适的机会尝试,而react早已经是最热门的前端框架,coding.net的WebIDE,墨刀的web原型设计应用,都是非常成熟的react应用:最近正好前后端都有很多想法,周末花时间折腾了一翻,顺利的完成React入门训练. 项目采用纯静态方式实现,全部都是静态文件,不需要任何服务器就可以运行效果.传送门 React简单介绍 React一般被用来作为MVC中的V层,它不依赖其他任何的库,因此开发中,可以与任何其他的库集成使用,包括Jque

LayUI前端框架开发视频讲解

简 介 课程知识点:1.两种容器的区别与使用2.常用页面元素的使用3.LayUI内置对象的使用4.结合学习的知识点编写项目模块 01什么是LayUI[录播]课程资料与在线答疑服务(3分钟) 免费试学 [录播]认识layui前端框架(10分钟) 免费试学 [录播]演示LayUI弹出框(14分钟) 免费试学 02容器与网页布局[录播]认识容器(8分钟) [录播]认识栅格系统(5分钟) [录播]栅格的使用(13分钟) [录播]后台模板的使用(7分钟) 03网页基本元素(1)[录播]内置图标的使用(9分

Android开发中使用七牛云存储进行图片上传下载

Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储原理,上面这幅图片是官方给出的原理图,表述当然比较清晰了.可以看出,要进行图片上传的话可以分为五大步: 1. 客户端用户登录到APP的账号系统里面: 2. 客户端上传文件之前,需要向业务服务器申请七牛的上传凭证,这个凭证由业务服务器使用七牛提供的服务端SDK生成: 3. 客户端使用七牛提供的客户端S

基于Html5 Plus + Vue + Mui 移动App开发(三)-文件操作(读取、保存、更新数据)

实全资讯采用基于Html5 Plus + Vue + Mui 移动App.主要实现功能包括: 实现搜索站点设置 实现搜索关键字定义 实现搜索资讯保存.删除功能. 主界面实现关键字搜索.预定义关键字搜索,下拉刷新,支持搜索结果保存.分享. 我的界面主要是展示自己保存的搜索资讯,支持删除.分享. 设置界面主要实现搜索站点.初始搜索关键字定义. 搜索站点目前支持:凤凰资讯.参考信息.腾讯资讯.百度资讯: 读取数据 /*读取内容*/ shiquan.readNews = function(callbac

weex,bui-weex基于vue前端框架开发移动应用

weex 官方文档 bui-weex 官网地址 Weex 是使用流行的 Web 开发体验来开发高性能原生应用的框架. 在集成了 WeexSDK 之后,你可以使用 JavaScript 语言和前端开发经验来开发移动应用. BUI-Weex 是一套专门为Weex前端开发者打造的一套高质量UI框架.帮助开发者快速构建移动应用 原文地址:https://www.cnblogs.com/lk4525/p/11322975.html