功能:图片上右键,点击上传图片到七牛,把图片上传的指定空间并返回图片URL。

Chrome插件本质就是js代码,但是里面有一些限制,比如事件绑定等和普通js的绑定是有区别的,主要是为了安全性考虑。

做的比较粗糙,但是已经可以满足我得基本需要了。

七牛的上传需要accessToken,左右要存储使用人的开发者秘钥,这里使用HTML5的本地存储都存在了本地,所以这个控件最好只在自己的电脑上使用,之后可以考虑把秘钥加密存储,最好的办法还是存在服务器上,用一个连接来获取token。

下面使用图片来说明一下整体的流程

点击插件图标,填写信息并保存

在网页图片上面右键

弹出新窗口,在新窗口上面点击上传

整体流程就是这样,算出达到了初步的目的,目前遇到的问题是:上传成功几个之后,会上传失败,服务器返回401,还不确定原因在哪里

开发Chrome需要先建立一个文件夹:ImageToQiniu,然后再里面建立一个json文件:Mainfest.json

这里填写的插件的配置信息,版本,权限等一系列参数。

{
"name": "上传图片到七牛",
"version": "1.2",
"manifest_version": 2,
"description": "上传图片到七牛",
"background" : { "scripts":["background.js"]},
"icons": {
"16": "img/qiniu.png",
"48": "img/qiniu.png",
"128": "img/qiniu.png"
},
"browser_action": {
"default_icon": "img/qiniu.png",
"default_title": "上传图片到七牛",
"default_popup": "popup.html"
},
"optional_permissions": [],
"permissions": [
"contextMenus",
"tabs",
"http://*/*",
"https://*/*"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

browser.action

这个是浏览器动作,设置之后会在浏览器的插件栏里生成一个图标。点击之后会显示popup.html页面

所以还需要建立一个popup.html的页面:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
html,body{width:400px;height: 200px;margin: 0 0;padding: 20px;font-size: 14px;}
input[type=text]{width: 220px; height: 30px; line-height: 20px; padding: 5px 3px;border: 1px solid #333;}
</style>
</head>
<body>
<table>
<tr>
<td>Access:</td>
<td><input type="password" id="txtAc" value=""/></td>
</tr>
<tr>
<td>Secret Key</td>
<td><input type="password" id="txtSk" value=""/></td>
</tr>
<tr>
<td>BuckeName</td>
<td><input type="text" id="txtBucke" value=""/></td>
</tr>
<tr>
<td>图片URL前缀</td>
<td><input type="text" id="txtPrefix" value=""/></td>
</tr>
<tr align="center">
<td colspan="2">
<button type="button" style="width:100px; padding:10px 5px;" id="btnSave">保存</button>
</td>
</tr>
</table>
<script type="text/javascript" src="popup.js"></script>
</body>
</html>

这里引用了popup.js文件,如何把js代码直接写到网页里面的话会有一个权限问题,无法运行,只能外联出去。

建立一个popup.js文件,第一步的配置就已经完成。

在Chrome的菜单里面找到扩展程序 -> 点击“加载正在开发的程序” ,然后选择ImageToQiniu文件夹,就可以把刚才开发的程序加载进浏览器。

如图:

我的blog

Chrome插件-把网页图片上传到七牛空间一的更多相关文章

  1. 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间

    现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...

  2. 使用PHP把图片上传到七牛

    先从官网下载SDK,然后新建一个文件,里面包括上传,下载,删除 <?php header("Content-Type:text/html; charset=utf8"); r ...

  3. 一百三十五:CMS系统之UEditoe编辑器集成以及配置将图片上传到七牛

    富文本编辑框,选择UEditor 下载地址:http://ueditor.baidu.com/website/download.html 使用说明:http://fex.baidu.com/uedit ...

  4. laravel上传到七牛图片插件

    1.首先引入两个插件 2.在https://developer.qiniu.com/kodo/sdk/1241/php找到安装命令 在终端运行composer require qiniu/php-sd ...

  5. easyui+webuploader+ckeditor实现插件式多图片上传-添加图片权限(图片上传人是谁,只能看到自己的图片)

    需求: 实现过程及思路 1.先页面布局 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=" ...

  6. easyui+webuploader+ckeditor实现插件式多图片上传

    需求:在ckeditor编辑器上实现多图片上传并要求另外单独选择ckeditor上传的图片作为封面 页面效果说明: 动态效果图: 第一步:页面布局 <html xmlns="http: ...

  7. 前端手势控制图片插件书写四(图片上传及Ios图片方向问题)

    1.在图片上传中,使用的input的type为File的属性.使用filereader的Api let that = this; var file = document.getElementById( ...

  8. KindEditor图片上传到七牛云

    自己做了一个网站,编辑器用的是KindEditor,平时会涉及到KindEditor自带的图片上传,但是服务器用的是虚拟主机,没多少空间,就一直想着把图片放在免费的云存储空间,之前看KindEdito ...

  9. 定时备份 MySQL 并上传到七牛

    多数应用场景下,我们需要对重要数据进行备份.并放置到一个安全的地方,以备不时之需. 常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份).mysqldump 全量逻辑备份. ...

随机推荐

  1. iOS 9音频应用播放音频之控制播放速度

    iOS 9音频应用播放音频之控制播放速度 iOS 9音频控制播放速度 iOS9音频文件在播放时是以一定的速度进行的.这个速度是可以进行更改的,从而实现iOS9音频文件的快速播放和慢速播放功能.要实现i ...

  2. Python正则模块

    re模块 import re # match # 从头开始匹配, 只匹配一次,就结束 a = re.match('\d+', '54:58天5488:8451') # 默认就是0个群组 print(a ...

  3. [BZOJ3203][SDOI2013]保护出题人(凸包+三分)

    https://www.cnblogs.com/Skyminer/p/6435544.html 先不要急于转化成几何模型,先把式子化到底再对应到几何图形中去. #include<cstdio&g ...

  4. 较有意思的Apple XSS(CVE-2016-7762)漏洞

    文章作者:Avfisher0x00 前言应CVE作者的要求帮忙分析一下这个漏洞,实际上这是一个思路比较有意思的Apple XSS(CVE-2016-7762).漏洞作者确实脑洞比较大也善于尝试和发掘, ...

  5. bzoj 1030

    dp[i][j] 表示,在AC自动机中,从根节点开始,走了i条边,并且经过的点不包含危险节点,走到了j节点的路径数. 收获: 1.正难则反 2.一个字符串不包含给定pattern中的任何一个,则该字符 ...

  6. 关于收到谷歌邮件 Googlebot can't access your site 的解决方法

    最近一段时间一直都收到谷歌的邮件,而且“新锐工作室”的关键字在谷歌收录及排名都没有了.下面图为谷歌蜘蛛无法抓取网站的截图,如果你在谷歌网管工具里收到类似消息,说明也中招了.[Webmaster Too ...

  7. 自定义的tabBarController的几种方法

    本文转载自:http://blog.sina.com.cn/s/blog_79c5bdc30100t88i.html 我自己实现的一种可以很方便的实现更换TabBarController图片的方法,代 ...

  8. Spring MVC - Hello World示例

    以下示例演示如何使用Spring MVC框架编写一个简单的基于Web的Hello World应用程序.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发一个 ...

  9. Java-方法的覆写

    class  parent {  void print()  {  System.out.println("parent");  } } class child extends p ...

  10. How to Distinguish a Physical Disk Device from an Event Message

    https://support.microsoft.com/en-us/help/159865  https://support.microsoft.com/en-us/help/244780/inf ...