文件

PHP debug_backtrace的胡思乱想

时间秒杀一切 提交于 2020-03-01 14:24:27
本文示例代码测试环境是Windows下的APMServ(PHP5.2.6) 简述 可能大家都知道,php中有一个函数叫 debug_backtrace ,它可以 回溯跟踪函数的调用信息,可以说是一个调试利器。 好,来复习一下。 one(); function one() { two(); } function two() { three(); } function three() { print_r( debug_backtrace() ); } /* 输出: Array ( [0] => Array ( [file] => D:\apmserv\www\htdocs\test\debug\index.php [line] => 10 [function] => three [args] => Array ( ) ) [1] => Array ( [file] => D:\apmserv\www\htdocs\test\debug\index.php [line] => 6 [function] => two [args] => Array ( ) ) [2] => Array ( [file] => D:\apmserv\www\htdocs\test\debug\index.php [line] => 3 [function] => one [args] => Array (

Linux下的C++程序:判断目录/文件是否存在

本秂侑毒 提交于 2020-03-01 07:18:17
本文中写了两个函数: 1)int IsFileExist(const char* path) 用于检查一个目录是否存在 -1:存在 0:不存在 2)int IsFileExist(const char* path) 用于检查文件(所有类型,包括目录类型)是否存在 -1:存在 0:不存在 如果不存在,可以用以下两种方式打印错误信息: 1)fprintf(stderr, "ERROR: %s\n", strerror(errno)); 2)perror("ERROR"); 程序代码: #include <stdio.h> #include <dirent.h> #include <unistd.h> #include <sys/stat.h> #include <string.h> #include <errno.h> //检查目录是否存在 //-1:存在 0:不存在 int IsFolderExist(const char* path) { DIR *dp; if ((dp = opendir(path)) == NULL) { return 0; } closedir(dp); return -1; } //检查文件(所有类型)是否存在 //-1:存在 0:不存在 int IsFileExist(const char* path) { return !access(path, F

罗友之家服务器文件管理升级小记

北城以北 提交于 2020-02-29 03:50:55
元旦前后,网站增加了直播功能,但发现,有时候打开页面,网站反应很慢。 吓死宝宝了,以为服务器出了啥子问题。 后来发现,由于上传图片,当一个页面有十多张图片,每个图片都有一兆多的时候,瞬间占满了一兆的带宽。 问题来了,就得解决。 原来的服务器文件,上传了,就放在那里,请求来了,便给。这样,如果一个页面有三两个一兆以上的文件,便会加载很慢,同时,其他访问,便拥堵了。 还有一个问题,原来的文件,都放到了数据库里,这样方便服务器横向扩展的时候,不用关心文件,反正都在数据库里。但,租用的数据库,也渐渐地满了。 最快捷的解决方法:加钱买啊! 钱能解决的问题,就不是问题。可,问题是没钱。 且,这么简单粗暴地解决问题,也不是我得风格。 于是,挽起袖子,自己解决。 需求如下: 1.图片要处理。图片有多种使用场景,缩略图,常规图,广告图片,海报图片等,规格都不一样。要随需供应。 2.语音也要处理。目前找到的文件500KB左右,加载要三两秒时间,明显等待。不爽。 3.要缓存。 4.支持所有文件。一个是用户上传的文件,另一个是ckeditor插件上传和管理的文件。 功能实现。 这是有史以来最废纸的功能,用了两页纸!平日里,一个功能,半张一张的,也就够了。 FreeFile领域类,用于存储文件元数据。主要是名称大小,路径之类(不再存数据库了)。为啥叫FreeFile,没啥意思,我是个爱自由的人。也想

python glob module和 python通配符操作

不想你离开。 提交于 2019-12-25 18:27:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> >>> import glob #上面glob 是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作 >>> print glob.glob(os.path.join('c:\\mydir\', "*.png")) File "<stdin>", line 1 print glob.glob(os.path.join('c:\\mydir\', "*.png")) ^ SyntaxError: EOL while scanning string literal #上面win路径要用\\作为分隔 >>> print glob.glob(os.path.join('c:\\mydir\\', "*.png")) ['c:\\mydir\\\PIC_01.png', ' c:\\mydir\\\PIC_02 .png' ] #上面展示用glob通配符操作获取指定目录下指定后缀的文件 >>> print os.path.join('c:\\mydir\\', "*.png") c:\mydir\*.png >>> #上面是未经 glob处理 本人文章除注明转载外,均为本人原创或编译 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区

PHP获取HTML文件名表单数据等

只谈情不闲聊 提交于 2019-12-10 14:53:02
1、PHP获取表单各项数据 --- 与表单提交的方式有关 GET方式,格式:$_GET[“formelement”] POST方式,格式:$_POST[“formelement”] REQUEST方式,格式:$_REQUEST[“formelement”] 2、表单中上传文件的数据 数组:$_FILES["file_name"] //其中file_name表示表单file元素对应的名称 包含error,name,type,size,tmp_name等数据项 3、表单本身所在文件(HTML,PHP等)的数据 $_SERVER["HTTP_REFERER"]表示请求的文件信息,是URL地址,如http://localhost/login.html 可以采用如下方式处理: $uri=$_SERVER['HTTP_REFERER']; //无法获得默认页面index.html等形式的文件名称 $arr=explode('/',$uri);//把字符串分割为数组 也可以将URL地址当做文件路径,使用basename($_SERVER["HTTP_REFERER"])来获得请求文件名 4、表单处理文件(本文件)的信息 __FILE__获得文件的完整路径; $_SERVER['REQUEST_URI']和$_SERVER['PHP_SELF']获得文件名; 注

Android如何正确的保存文件

喜夏-厌秋 提交于 2019-12-07 13:31:13
在Android 官方开发文档中有一篇文档来介绍 如何保存应用的数据 ,但笔者用过很多程序(从知名的到不知名的)处理的都不是很完美,或者 没有按照Android 开发团队建议的方式去保存他们应用的数据。当一些试用过的软件卸载后,在SDCard中还保留了这些软件的文件目录,时间一长就有很多目录需要手工去清理,并且很难确认那些目录是仍然在使用的 那些目录已经没用了,给用户带来困扰。这里我们来讨论下该如何正确的保存应用的数据。 首先数据分为两种: 和应用相关的数据 ; 和应用无关的数据 。这里分别介绍: 应用无关的数据 是那些用户比较关心的数据,不管您的应用在不在用户设备上,这些数据用户都希望保留,这些数据包含: 用相机拍摄的照片、用浏览器(下载工具)下载的文件、用户制作的个性铃声等 。 假设您开发了一个照相应用(例如: 360相机),用户用您的应用拍摄并处理过的照片就属于应用无关的数据,如果用户把您的应用给卸载了,用户还是会期望仍然保留他们拍摄并处理过的照片。这里的照片按照Android官方的建议应该保存到 DIRECTORY_PICTURES 目录中,该目录通过 Environment.getExternalStoragePublicDirectory(String type) 来获取,您可以在该目录下创建一个以您的程序命名的目录来保存数据。其他支持的目录列表请 参考这里 。

nginx+fastcgi文件下载不全的问题

百般思念 提交于 2019-12-06 09:52:22
今天遇到了一个奇怪的问题:nginx+fastcgi+php+某论坛程序的环境下,通过论坛上传的比较大(500KB)的文件下载后体积变小了。而较小的文件(100KB)则安然无恙。 用WinHex比较,可以看到文件从中间被截断了,并且没有多出任何内容。使用经多次测试,每次下载的大小在64KB左右(小于64KB),但不相同。下载到64KB左右的时候卡住了,几秒钟之后下载进度直接跳到100%,显示下载完成。为排除伟大的墙的因素,翻 墙测试,每次下载的大小在127KB左右。 找到论坛源代码,可以看到使用的是php的readfile()进行文件输出,而在输出前已经写入了content-length header。通过HttpFox进行观察,content-length的大小是正确的文件大小。 由于64KB这个大小比较敏感,所以去代码里找了有没有循环缓存读取文件的地方,并没有发现。readfile()直接读取全部内容进行输出。 为了排查,先将服务器切换到httpd(mod_php),则恢复正常,也就是说问题很可能在nginx和fastcgi上。 检查nginx.conf,注意到这个地方: fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; 它的值正好等于64K,也就是说问题可能和它有关。将其修改为16K,重启nginx服务,重新下载

C Primer Plus 第8章 字符输入/输出和输入确认 8.3 终止键盘输入

帅比萌擦擦* 提交于 2019-12-05 20:56:08
8.3.1 文件、流和键盘输入 文件是一块存储信息的存储器区域。 通常,文件被保存在某种类别的永久存储器上,例如软盘、硬盘或磁盘。 具有强大、灵活等特点的C语言具有许多打开、读取、写入和关闭文件的库函数。在一个级别上,它可以使用宿主操作系统的基本文件工具来处理文件。这被称为低级I/O。由于计算机系统之间存在许多差异,所以不可能创建一个通用的低级I/O函数标准库。然而, C还以第二种级别处理文件,称为标准I/O包。这包括创建用于处理文件的I/O函数的标准模型和标准集。 使用标准I/O包时,就屏蔽掉了这些差异。因此,要检查一个换行符,您可以使用if(ch=='\n')。如果该系统实际上使用回车/换行字符的组合,则I/O函数自动在两种表示法之间来回转换。 从概念上讲,C程序处理一个流而不是直接处理文件。流(stream)是一个理想化的数据流,实际输入或输出映射到这个数据流。这意味着具有不同属性的多种类型的输入由流表示,会具有更多统一的属性。于是打开文件的过程就成为将流与文件相关联,并通过流进行读写的过程。 第13单详细的讨论了文件。对本章来说,仅需注意 C对待输入和输出设备与其对待存储设备上的普通文件相同 。特别的是, 键盘和显示设备作为每个C程序自动打开的文件来对待 。 键盘输入由一个被称为stdin的流表示,而到屏幕上的输出由一个被称为stdout的流表示。 getchar()

C Primer Plus 第8章 字符输入/输出和输入确认 8.3 重定向和文件

本小妞迷上赌 提交于 2019-12-04 23:42:38
输入和输出涉及到函数、数据和设备。例如,考虑echo_eof.c程序。该程序使用了输入函数getchar()、输入设备(我们已经假设)是键盘,输入数据流由单独的字符组成。假设您希望保持相同的输入函数和相同的类型的数据,但希望改变程序寻找数据的位置。“程序如何了解在哪里寻找其输入?” 默认情况下,使用标准I/O包的C程序将标准输入作为其输入源 。这就是前面标识为stdin的流。该流是作为向计算机中读取数据的常规方式而建立的。一台现代的计算机是一个灵活的工具,您可能指示它到其他地方寻求输入。特别地,您可以告诉一个程序从文件而不是键盘寻求其输入。 令程序与文件一同工作有两种方式。 一种方式是明确的使用打开文件、关闭文件、读文件、写文件等专门的函数。 这种方法我们在第13章中讨论。 第二种方式是使用一个设计用于与键盘和屏幕共同工作的程序,但是使用不同通道重定向(redirect)输入和输出,例如输入到文件和从文件中输出。 换句话说,就是您将stdin流重新分配至文件。getchar()程序继续从该流中取数据,而不真正关心流是从何处获取其数据。这种方法比第一种方法在一此方面功能更有限,但它更容易使用,而且使您能够更加熟悉常用的文件处理技术。 重定向的一个主要问题是其与操作系统而不是C相关联。 Unix、Linux和Dos重定向 一、输入重定向 假设您已经编译了echo_eof.c程序

多种上传图片的方法

亡梦爱人 提交于 2019-12-03 14:28:05
tags: 图片上传, multipart, 截图上传, file对象, FormData, 拖拽上传图片, dataTransfer, readAsDataURL 一个如下所示的发布框,经常会出现在各种微博、社区、论坛站点上,这类发布形式虽然没有高级编辑器那样可以任意排版加工,但也满足了常见的表述观点意见的要求,它通常搭配一些表情、文件上传、分享网页视频等方式,来满足上述需求。最近我从事的一个项目中,就完成了如下图示的发布内容的需求,今天主要讲一下其中图片和附件的上传发布方式。 其实上传的方式有很多种,本文将列举需求中用到的几种上传方式。 1. 表单上传 也就是用传统的form表单来上传,使用form表单的input[type=”file”]控件,可以打开系统的文件选择对话框,从而达到选择文件并上传的目的,它的好处是多浏览器兼容,但是在多图上传、分段上传上等高级特性上就显得力不从心。 表单的格式如下: 我列出表单上传所需的关键几点: method=”post”: 采用post方式提交数据 enctype=”multipart/form-data”:采用multipart格式上传文件,此时request头会显示 Content-Type:multipart/form-data; boundary=——WebKitFormBoundaryzr34cwJ67R95KQC9 action