一切福田,不離方寸,從心而覓,感無不通。

js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)

原理分析

提取操作:复制=>粘贴=>上传
在这个操作过程中,我们需要做的就是:监听粘贴事件=>获取剪贴板里的内容=>发请求上传
为方便理解下文,需要先明白几点:

我们只能上传网页图(在网页上右键图片,然后复制)和截图(截图工具截的图片,eg:qq截图),不能粘贴上传系统里的图片(从桌面上、硬盘里复制),他们是存在完全不同的地方的。
截图工具截的图与在网页点击右键复制的图是有些不同的,因此处理方式也不一样。
知悉paste event这个事件:当进行粘贴(右键paste/ctrl+v)操作时,该动作将触发名为’paste’的剪贴板事件,这个事件的触发是在剪贴板里的数据插入到目标元素之前。如果目标元素(光标所在位置)是可编辑的元素(eg:设置了contenteditable属性的div。textarea并不行。),粘贴动作将把剪贴板里的数据,以最合适的格式,插入到目标元素里;如果目标元素不可编辑,则不会插入数据,但依然触发paste event。数据在粘贴的过程中是只读的。此段是翻译于w3.org_the-paste-action。
可惜的是,经过试验,发现chrome(当前最新版)、firefox(当前最新版)、ie11对paste事件的实现并不是完全按照w3c来的,各自也有区别(w3c的paste标准也因此只是草案阶段)。

龙生   11 Aug 2023
View Details

Nginx代理mysql端口

Nginx代理mysql端口
1、安装1.9以上版本nginx并配置stream模块。
stream{
upstream mysqlBackend{
hash $remote_addr consistent;
#原数据库的ip及端口
server 127.0.0.1:3306;
}

server {
#需要路由的端口
listen 13306;
proxy_pass mysqlBackend;
}
}

龙生   11 Aug 2023
View Details

Centos离线安装openJDK1.8(适用于离线yum安装其它软件)

总体思路
1.在能够联网的机器上使用repotrack工具下载软件所需的所有依赖,并使用createrepo工具创建yum仓库。
2.将yum仓库文件夹打包上传到没有互联网环境的服务器上,配置成本地yum仓库,然后就可以像互联网环境下使用yum命令一样安装软件了(不止适用于openjdk,其它软件也可以用此方法)

龙生   11 Aug 2023
View Details