首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>PHP专区>PHP教学>php实现的多文件上传类,并对常用文件的类型进行MIME检测
php实现的多文件上传类,并对常用文件的类型进行MIME检测
来源: 发布时间:2008-07-25 发布人: 浏览: 人次   字体: [ ]  

/*检测文件的类型
*(array)$files 文件数组
*/
private function check_file_type($files) {
$this->filelist = array();
foreach($files as $key=>$file) {
if($file['error'] == 0) {
$ext = strtolower(substr($file['name'], strrpos($file['name'], '.') + 1));
$str = @file_get_contents($file['tmp_name'],FALSE,NULL,0,20);
if((in_array($ext,array('jpg','jpeg')) && substr($str ,0, 3) !== "\xFF\xD8\xFF") || ($ext == 'gif' && substr($str ,0, 4) !== 'GIF8') || ($ext == 'png' && substr($str ,0, 8) !== "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A") || ($ext == 'bmp' && substr($str ,0, 2) !== 'BM') || ($ext == 'swf' && (substr($str ,0, 3) !== 'CWS' || substr($str ,0, 3) !== 'FWS')) || ($ext == 'zip' && substr($str ,0, 4) !== "PK\x03\x04") || ($ext == 'rar' && substr($str ,0, 4) !== 'Rar!') || ($ext == 'pdf' && substr($str ,0, 4) !== "\x25PDF") || ($ext == 'chm' && substr($str ,0, 4) !== 'ITSF') || ($ext == 'rm' && substr($str ,0, 4) !== "\x2ERMF") || ($ext == 'exe' && substr($str ,0, 2) !== "MZ") || (in_array($ext,array('doc','xls','ppt')) && substr($str ,0, 4) !== "\xD0\xCF\x11\xE0")) {
$this->log .= $file['name'] . "文件类型与文件内容不符合。\n";
}elseif((!empty($this->extensionFileFormat) && in_array($ext,$this->extensionFileFormat)) || (empty($this->extensionFileFormat) && (in_array($ext,$this->ImageFileFormat) || in_array($ext,$this->OtherFileFormat)))) {
$this->filelist[$key] = $file;
}else{
$this->log .= $file['name'] . "不符合上传文件的类型。\n";
@unlink($file['tmp_name']);
}}}}

/*生成上传目录
*
*/
private function makeDirectory() {
$directoryName = str_replace("\\","/", $this->savePath);
$dirNames = explode('/', $directoryName);
$total = count($dirNames);
$temp = '';
for($i=0; $i<$total; $i++)
{
$temp .= $dirNames[$i].'/';
if (!is_dir($temp))
{
$oldmask = @umask(0);
if (!@mkdir($temp, 0777)) return false;
@umask($oldmask);
}
};
if(is_dir($this->savePath)) {
return true;
} else {
return false;
};
}
}?>


共2页: 上一页 [1] 2 下一页
相 关 文 章   发布商链接
·WINXP系统是如何安装apache+php+mysq...
·PHP图片加水印的原理及其实现的代码
·用PHP操纵Oracle的LOB类型的数据
·使用php读取xml数据的示例
·PHP实现明天时间的计算
·PHP实现PDF正常输出中文的代码
·PHP中Zend Cache用法的小例子
·为什么PHP不适合于比小型业余网站更...
·fckeditor在php环境中的配置及其使用...
·实例介绍搭建PHP5和SQL Server 2005...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·PHP图片加水印的原理及其实现
·WINXP系统是如何安装apache+p...
·实例介绍搭建PHP5和SQL Serve...
·fckeditor在php环境中的配置...
·为什么PHP不适合于比小型业余
·PHP中Zend Cache用法的小例子
·PHP实现PDF正常输出中文的代...
·PHP实现明天时间的计算
·使用php读取xml数据的示例
·用PHP操纵Oracle的LOB类型的...
热 门 文 章
·fckeditor在php环境中的配置...
·WINXP系统是如何安装apache+p...
·PHP实现明天时间的计算
·PHP图片加水印的原理及其实现...
·实例介绍搭建PHP5和SQL Serve...
·为什么PHP不适合于比小型业余...
·使用php读取xml数据的示例
·PHP中Zend Cache用法的小例子
·PHP实现PDF正常输出中文的代...
·用PHP操纵Oracle的LOB类型的...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .