ajax批量上传插件plupload

要想实现异步批量上传,大概有两种方式:隐藏iframe方式和flash控件。

plupload是一个出色的批量上传插件,几乎不需要任何代码就可以实现一个漂亮的上传组件

qq截图未命名.jpg

它可以使用JqueryQueue、Jquery UI两种方式初始化,后者可以和Jquery UI结合实现风格的切换。

plupload最强大的地方在于你可以为它设置包括Flash、Silverlight、html4、html5、gears、browserplus等各种运行时环境,它会在初始化时逐个尝试,知道找到客户端支持的版本为止。也就是说,如果你按照

runtimes : 'gears,flash,silverlight,browserplus,html5,html4',

这样的方式来初始化的话,用chrome浏览器你会看到一个使用gears的版本,它能支持拖拽;在安装了flash控件的浏览器中是flash版本;在安装了silverlight的浏览器中看到的是silverlight版;如果都不支持的话会显示最基本的html4版,当然html4是不支持批量选择文件的,你只能将文件一个一个地加入到上传队列中。

plupload还能实现客户端文件类型和大小校验,超大文件自动分块(chunk)上传,自动生成唯一文件名(unique names),客户端调整图片大小等强大的功能。

官方文档看这里:http://www.plupload.com/documentation.php

ThinkPHP与PHPExcel冲突

最近一个项目需要批量导入Excel数据,要用到PHP读取Excel中的内容然后导入到数据库。很早之前就知道有一个叫做PHPExcel的类(官方网站)可以用来操作Excel,一直没有机会尝试,今天试用发现无比强大,下载后的源码包里有详细文档,几乎能实现手工操作Excel能实现的一切功能。

一个简单的读取Excel的例子如下:

$inputFileType = 'Excel2007';
$inputFileName = './public/files/import_user_template.xlsx';
$sheetname = 'Sheet1';

//指定Excel类型,创建一个reader
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
//设置只读取数据,不包括公式和格式
$objReader->setReadDataOnly(true);
//只读取指定的sheet
$objReader->setLoadSheetsOnly($sheetname);
$objPHPExcel = $objReader->load($inputFileName);

$curSheet = $objPHPExcel->getSheet(0);
//包含数据的最大列
$allColumn = $curSheet->getHighestColumn();
//包含数据的最大行
$allRow = $curSheet->getHighestRow();

for($currentRow = 1; $currentRow <= $allRow; $currentRow++){
        for($currentCol = 'A'; $currentCol <= $allColumn; $currentCol++){
                echo $curSheet->getCell($currentCol.$currentRow)->getValue()."\t";
        }
        echo "\r\n";
}

要在ThinkPHP中使用,把源码包中的Classes目录复制到ThinkPHP的Vendor目录下,改名为PHPExcel,然后调用Vendor方法载入

vendor('PHPExcel.PHPExcel');

可是这样一来发现读取Excel以后再调用M或者D方法实例化模型类时报找不到Model类的错误,经过研究发现是自动装载机制冲突,要解决冲突,需要在M或者D方法调用之前使用spl_autoload_register函数重新注册autoloader类

spl_autoload_register(array('Think','autoload'));

各种表情图大集合

微博被刷屏了,于是收集了一下。。。

一切都由公交车而起。。。

公交.jpg

然后遇到早晚高峰就会变成这样

杭州公交.jpg

上了地铁就更杯具了

地铁.jpg

车站洗手间是这副样子

火车站洗手间.jpg

听说范范和黑人修成正果了,他们的婚礼很多人

范范&黑人婚礼.jpg

可是也没有五月天演唱会火爆

五月天演唱会.jpg

2012眼瞅着就到了,你还没挣到买船票的钱么?

诺亚方舟.jpg

叫你不好好念书吧,你说,你上学的时候是不是这样的?

教室.jpg

个人觉得还是教室版的最有才。

慎独

在我很小的时候,有一个人打醒正在睡午觉的我,从上衣口袋里拿出一只钢笔和一张便笺,在上面写了“慎独”两个字,然后贴在我的床头。

那个时候我不明白这个词的意思,哪怕是把它们分开,那两个字的意思我也不明白。

后来我上学,有了一本价值38元的《现代汉语词典》,我用它查的第一个词就是——慎独。

在我上大学的时候,我从图书馆里面翻出来一本很破的书,名字叫做《大学》,不小心看到了一句话:所谓诚其意者,毋自欺也。如恶恶臭,如好好色,此之谓自谦。故君子必慎其独也。

某知名搜索引擎公司员工劝告我说:你应该人为地把某些数据调高一点。我说:不,摩迹决不会做任何人工干预的事情,你所见到的一切都是机器算法的结果,哪怕它不准确,至少它是真实的。如果我要欺骗用户,却又打着为用户服务的幌子,那不是当了婊子还要立牌坊么。

某资深政治学者跟我说:很不幸你出生在这个没有规则可言的年代,你想要成功必须扭曲自己的价值观,融入这个畸形的社会,然后一将功成万骨枯。我说,那就让我战死,至少我的膝盖从来没有弯过。

也许我是个怪物,与这个世界格格不入。以某ss的观点来看,我似乎要算情商极低的一类人。

今天,我自己拿出一张纸,在上面写了“慎独”两个字,然后贴在我的床头。

代码成诗

好吧,代码真的是可以写成诗的。忽然发现有一个叫做PerlYuYan的中文编程语言,它写出来的程序大概是这个样子的:

#!/usr/local/bin/perl
use Lingua::Sinica::PerlYuYan;
用警兮用嚴。
印道
1..1
哉兮

印編曰雜申雜申矣
  又曰ok矣
    又曰1矣

亂曰
國無人莫我知兮  又何懷乎故都
既莫足與為美政兮 吾將從彭咸之所居

这还不够,还可以写成五言诗啊有木有!

# The Sieve of Eratosthenes - 埃拉托斯芬篩法
use Lingua::Sinica::PerlYuYan;

  用籌兮用嚴。井涸兮無礙
。印曰最高矣  又道數然哉。
。截起吾純風  賦小入大合。
。習予吾陣地  並二至純風。
。當起段賦取  加陣地合始。
。陣地賦篩始  繫繫此雜段。
。終陣地兮印  正道次標哉。
。輸空接段點  列終註泰來。

不得不佩服台湾的人文教育水平啊,一个程序员都能把代码搞成这样。