Amp

PHP实战之文件上传与下载

走远了吗. 提交于 2020-08-18 06:39:58
目录 1. 前言 2.代码实战 2.1 客户端页面配置说明 2.2 $_FILES预定义变量解析 2.3文件的移动方式 2.3.1第一种移动形式 2.3.2第二种移动形式 2.4 文件上传配置及解析 2.5 错误信息说明 3. 文件上传案例实战 3.1客户端限制 3.2服务器端限制 3.2.1限制上传文件大小 3.2.2限制上传文件类型 3.2.3检测是非真实图片类型 3.2.4检测是非为HTTP POST方式上传 3.2.5确保上传文件名唯一 3.2.6 uploads目录不存在时候,自动创建目录 3.3 单文件上传函数封装 3.4 多文件上传案例实战    3.5封装上传文件类 3.6 文件下载  4. 总结 1. 前言 PHP文件上传原理 就是客户端文件上传到服务器端,再将服务器端临时文件移动到指定目录,下面我们一起实战一下,加深印象。 2.代码实战 2.1 客户端页面配置说明 上传文件必须满足以下三个条件: 表单页面 表单发送方式为psot 必须添加enctype= ” multipart/form-data ” 如下代码所示: <form action="doAction.php" class="file" method="post" enctype="multipart/form-data"> <input type="file" name="myFile"><br/>

对图像进行变形失真

老子叫甜甜 提交于 2020-08-18 06:37:47
实现参考 原图 #include <QApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace cv; static double PID2 = 3.141592653 * 0.5; static double param1 = 0.25; static double param2 = 0.25; static double param3 = 0.25; int SIGN(float x) { if (x < 0) return -1; else return 1; } int Eval(int mapping, double x, double y, double *xnew, double *ynew) { double phi, radius, radius2; double xtmp, ytmp; double denom; /* Some things that may be needed */ radius2 = x * x + y * y; radius = sqrt(radius2); phi = atan2(y, x); switch (mapping) {

Redis应用-限流

血红的双手。 提交于 2020-08-18 05:20:15
在高并发场景下有三把利器保护系统:缓存、降级、和限流。缓存的目的是提升系统的访问你速度和增大系统能处理的容量;降级是当服务出问题或影响到核心流程的性能则需要暂时屏蔽掉。而有些场景则需要限制并发请求量,如秒杀、抢购、发帖、评论、恶意爬虫等。 限流算法 常见的限流算法有:计数器,漏桶、令牌桶。 计数器 顾名思义就是来一个记一个,然后判断在有限时间窗口内的数量是否超过限制即可 function isActionAllowed($userId, $action, $period, $maxCount) { $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $key = sprintf('hist:%s:%s', $userId, $action); $now = msectime(); # 毫秒时间戳 $pipe=$redis->multi(Redis::PIPELINE); //使用管道提升性能 $pipe->zadd($key, $now, $now); //value 和 score 都使用毫秒时间戳 $pipe->zremrangebyscore($key, 0, $now - $period); //移除时间窗口之前的行为记录,剩下的都是时间窗口内的 $pipe->zcard($key); //获取窗口内的行为数量

verilog spi master源码

*爱你&永不变心* 提交于 2020-08-18 05:13:20
module spi_master(sysclk,key,reset,mosi,miso,sclk,ss,led); input sysclk; input reset; input miso; input [1:0] key; output mosi; output ss; output sclk; output [1:0] led; // led????????? reg mosi; reg sclk; reg ss; reg en; // ???? reg [7:0] shifter; // ????? reg [1:0] cnt; // ????? reg [5:0] cnt1; reg [12:0] cnt2; reg [6:0] cnt3; reg [7:0] data; // ?????? reg [3:0] count; reg [4:0] addr; reg [1:0] key_buf1; // ??????? reg [1:0] key_buf2; reg [1:0] key_on_r; reg [1:0] key_on_rr; wire [1:0] key_on; // ??????????????????? wire clk5khz; wire sclk2; // ???sclk????? always @(posedge sysclk or negedge

spring整合Quartz时,定时任务执行了2次

帅比萌擦擦* 提交于 2020-08-18 04:56:22
项目背景:spring+quartz+dubbo+… 最近在检查日志的时候,发现自己的定时任务执行了多次,而且是每个任务执行了多次,但是在本地环境的时候 是不会这样的,本地使用jetty启动的,服务器上使用tomcat启动的, 后来发现 在tomcat下面启动的时候,在它的配置文件中(conf/server.xml) <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className=

最常用的linux命令

拜拜、爱过 提交于 2020-08-18 04:38:11
查看磁盘挂载情况: df -h 查看当前目录下每个文件夹的大小 du -lh --max-depth=1 清空特定文件root >root 查看安装的linux发型版本 cat /proc/version *******lsb_release -a uname --m 查看所有安装的软件包 rpm -qa 杀死进程 kill -9 进程名 网络 # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 linux查看某个端口(Port)的使用情况 lsof -i:80 netstat -anp|grep 80 Windows查看端口使用情况 Jetty后台启动和关闭 nohup java -jar start.jar & ps -aux |grep java 查找文件 find / -name '*.txt' 指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组

Discourse 主题字数限制

不打扰是莪最后的温柔 提交于 2020-08-18 04:25:44
Discourse 主题字数被限制为 15 个字符。 这个对英文还好,但是中文会影响用户体验。 你可以在 Discourse 的后台设置中搜索 min topic title length 关键字。 在默认的情况下,min topic title length 是设置为 15 的,针对中文环境,你可以将这个参数设置为 4。 如果你使用的是菜单路径的话,请参考下面的图片。 你可以直接修改参数后再保存就可以了。 https://www.cwiki.us/display/CWIKIKB/questions/62620039 来源: oschina 链接: https://my.oschina.net/honeymoose/blog/4284549

服务端对接钉钉三步走

丶灬走出姿态 提交于 2020-08-18 04:18:22
服务端对接钉钉三步走 第一步:获取业务对接的appkey和appsecret 登录开发者后台,点击“应用开发”-“企业内部应用”-找到应用并点击应用图标-点击“查看详情”,可以查看AppKey和AppSecret。 第二步:根据appkey和appsecret获取登录access_token /** * 初始化获取 access_token * @return */ public static String getAccessToken(){ String accessToken =""; DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); OapiGettokenRequest request = new OapiGettokenRequest(); request.setAppkey(appkey); request.setAppsecret(appsecret); request.setHttpMethod("GET"); try { OapiGettokenResponse response = client.execute(request); accessToken = response.getAccessToken(); Long

ubuntu无法进入桌面,安装ubuntu-desktop失败的解决办法

谁说胖子不能爱 提交于 2020-08-18 04:04:25
在执行windows远程连接ubuntu操作(安装 Xfce 和 Xrdp )后,ubuntu在登录后无法进入桌面。 解决方法如下: 1.Ctrl+Alt+F1(或者F2-F8)进入命令行界面,登录账户 2.卸载Xwindows软件 sudo apt-get autoremove ubuntu-desktop 3.安装所有依赖软件 sudo apt- get update sudo apt-get install ubuntu-desktop 4.重启 reboot 执行重装ubuntu-desktop前,可优先卸载引起该问题的软件 执行sudo apt install ubuntu-desktop时报错 Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:

PrestaShop 1.7 首页菜单如何进行调整

纵饮孤独 提交于 2020-08-18 03:56:18
PrestaShop 1.7 在使用默认目标的时候首页上面的菜单如何进行调整? 首页上的菜单是在 PrestaShop 1.7 的后台进行调整的。 登录进行 PrestaShop 1.7 后台后,选择设计的主题和图标。 在弹出的界面中选择 HomePage Configuration(主页配置) 单击后,在随后的界面中选择 MENU(菜单) 在随后弹出的界面中选择主菜单进行配置: 在这里你可以需要对你主页显示的菜单进行配置和调整。 例如,你可以从右侧选择已有的选择项添加到左侧的菜单中。 你可以在左侧已经选择的菜单中进行上下顺序的调整。 你也可以将左侧已经选择的菜单选择项目删除,通过单击 Remove 按钮来实现这个删除。 https://www.cwiki.us/display/PrestaShop/questions/62619741 来源: oschina 链接: https://my.oschina.net/honeymoose/blog/4273954