作者归档:兔兔风

解决客户端IE默认设置下无法下载https协议传输的文件的问题

如下代码,ie无法下载

header(‘Content-type: application/’ . $fileType);

header(‘Content-Disposition: attachment; filename=”‘ . $fileName . ‘”‘);

readfile(SOFT_DIR . $fileName);

加了一些header后就可以了

如下:

header(‘Content-type: application/’ . $fileType);

header(‘Content-Disposition: attachment; filename=”‘ . $fileName . ‘”‘);

header(‘Expires: 0’);

header(‘Pragma: public’);
header(‘Cache-Control: must-revalidate, post-check=0, pre-check=0’);

header(‘Cache-Control: public’);

readfile(SOFT_DIR . $fileName);

原因是默认的IE7通过HTTPS下载时,其cache缓存是不给权限的。所以,必须先要对cache进行配置和给其权限。

另外,也可以通过修改客户端的配置来达到目的.

推荐几首歌《So bad》&《Love the way you lie》&《No love》

As titled.

这三首歌都来自Eminem今年复出的新专辑《Recovery》,前几天费了一番力气才找到FLAC的版本,其中的主打歌《Not afraid》之前就非常喜欢,这次把整张专辑找到,听了一遍,真的不错。

加上《Not afraid》,算四首吧。

PS:iPhone4,流口水呀……

忙碌,加油!

预计一点半回家,最晚不会超过两点。

小困,铁观音果然不对我的口味,从小喝惯了毛尖果然喝不惯大叶片的茶,怀念家乡的毛尖。

咖啡还是稍微有点提神效果滴,不会抽烟,只能喝咖啡鸟~

Come on,Kevin!

一个困扰已久的Cacti问题

集群用了cacti监控服务器,部署的时候用了最新的版本0.8.7g,nginx连接数的监控不能正常工作,困扰了我好久。

今天早上突然想起问题会不会处在spine身上,于是立马去尝试spine的debug.

手动执行<path_cacti>/scripts/get_nginx_clients_status.pl <stub_status_url>能够正确的获取返回的数据。

第一步:使用poller的debug:
/usr/local/php/bin/php -q /usr/local/nginx/html/cacti/poller.php –force –debug
可以看到很多这样的错误:
ERROR: not enough argument
应该就是在获取nginx client时出现的错误。

而且查看nginx client的rra,发现更新时间都是很久前的。

第二步:使用spine的debug:
cd <path_to_spine>/bin/
./spine -C ../etc/spine.conf –verbosity=5 -H 2
其中-H为Host的ID,可以在devices菜单中查到。

其中关于nginx连接数的信息:
NginxStatus, output: 0
可以看到,spine没有获取到数据。

去官网下上一个版本的spine,编译,安装,并重新执行:

./spine -C ../etc/spine.conf –verbosity=5 -H 2
有数据了

唉,0.8.7.g的bug真不少呢。

学到一个函数clearstatcache()

用PHP在做图片缩略的时候,原图被我缩略后以相同的路径,相同的文件名存放缩略图。在缩略前,我读取了原图的文件大小,缩略后我用filesize()函数获取缩略后的文件大小总是不对,读出来总是缩略前原图的大小,当时猜想可能被系统缓存了,后来Google之才知道,PHP文件操作的时候,如果在一个脚本中会对同路径的同名文件进行操作,PHP会缓存文件的相关信息,以提升速度。在对同一个文件做更改,删除等操作后如果需要获取此文件信息,就必须调用clearstatcache()来清除系统文件信息缓存。摘抄一下PHP函数文档:

说明
void clearstatcache ( void )
当使用 stat(),lstat() 或者任何列在受影响函数表(见下面)中的函数时,PHP 将缓存这些函数的返回信息以提供更快的性能。然而在某些情况下,你可能想清除被缓存的信息。例如如果在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被删除或修改的危险时,你需要清除文件状态缓存。这种情况下,可以用 clearstatcache() 函数来清除被 PHP 缓存的该文件信息。

必须注意的是,对于不存在的文件,PHP 并不会缓存其信息。所以如果调用 file_exists() 来检查不存在的文件,在该文件没有被创建之前,它都会返回 FALSE。如果该文件被创建了,就算以后被删除,它都会返回 TRUE

Note: 本函数缓存特定文件名的信息,因此只在对同一个文件名进行多次操作并且需要该文件信息不被缓存时才需要调用 clearstatcache()。

受影响的函数包括 stat(),lstat(),file_exists(),is_writable(),is_readable(),is_executable(),is_file(),is_dir(),

is_link(),filectime(),fileatime(),filemtime(),fileinode(),filegroup(),fileowner(),filesize(),

filetype() 和 fileperms()。

推荐首歌

昨晚,好吧,算是今天凌晨,三点钟,被隔壁吵醒了,一边听歌一边聊QQ,歌声加企鹅的“滴滴滴”,Ont…

在我迷迷糊糊要敲墙,对的,就是敲墙提醒隔壁的关掉声音的时候,突然发现这首歌还挺好听的……无语了,我竟然听了半分钟,记住几句歌词才敲墙。隔壁关掉声音,我手机开Google,搜歌词,找到歌了,下到手机上,然后再重新开始睡觉……对自己的这个行为,我表示很无语,但是我觉得,歌确实还行,今天听了一天了,《月光》from 徐良 Ft.阿悄 ,好吧,我也不知道到底为什么是这个组合,我从来没有听说过。

iTunes表示鸭梨很大,我单曲重放了一天这首歌。