写了个简单的文件上传类,能同时上传多个文件。
下面是类
- < ?php
- /*
- * 文件上传
- * site:http://wangtao.name
- */
- class uploadFile
- {
- private $files = array();
- private $uplodName = '';
- private $folder = '';
- function __construct($files,$uplodName='',$folder = '')
- {
- $j = 0;
- foreach($files['name'] as $value)
- {
- $newFiles[$value] = array(
- "name" => $files['name'][$j],
- "type" => $files['name'][$j],
- "tmp_name" => $files['tmp_name'][$j],
- "error" => $files['error'][$j],
- "size" => $files['size'][$j]
- );
- $j ++;
- }
-
-
- $this-> files = $newFiles;
- $this-> uplodName = $uplodName;
- $this-> folder = $folder;
- }
-
- /*
- * 保存文件
- */
- function saveFiles()
- {
- if (empty($this -> files))
- {
- return array();
- }
- else
- {
- $fileInfo = array();
- foreach ($this -> files as $file)
- {
- $fileInfo[] = self::file($file,$this -> uplodName ,$this -> folder);
- }
- return $fileInfo;
- }
- }
-
- /*
- * 传入一个文件数组;
- * 上传文件成功后返回数组;
- * $file: 从浏览器中获得的文件数组
- * $uplodName:为保存到文件名,默认为空
- * $folder: 上传后保存的目录,默认为空
- */
- static function file($file, $uplodName = '', $folder = '')
- {
- #判断文件数组是否正确
- if($file['error'] > 0)
- {
- echo 'Error: ' . $file['error'];
- }
- #生成上传后的文件路径
- if(empty($uplodName))
- {
- $fileName = self::createFolder(date('Y-m')) . self::getFilename() . '.' . self::getFileSuffixName($file['name']);
- }
- else
- {
- $fileName = self::createFolder($folder) . $uplodName . '.' . self::fileAdorn($file['name']);
- if(file_exists($fileName))
- {
- echo '相同的文件名存在';
- return false;
- }
- }
-
- #上传成功返回数组
- if(move_uploaded_file($file['tmp_name'],$fileName))
- {
- return $fileName;
- }
- else
- {
- return false;
- }
- }
-
- #创建目录
- static private function createFolder($folder = '')
- {
-
- if(empty($folder))
- {
- #默认路径
- $path = date('Y-m');
- }
- else
- {
- $path = $folder;
- }
- if(file_exists($path))
- {}
- else
- {
- mkdir($path, '0777');
- }
-
- return $path . '/';
- }
-
- /**
- * 获取一个的文件名
- * @param $prefix 文件名的前缀
- */
- static function getFilename($prefix = '')
- {
- $s = explode(" ",microtime());
- $s = $s[1].substr($s[0],2,-1);
- $s .= mt_rand();
- return $prefix?$prefix.$s:$s;
- }
-
- /*
- * 获得文件后缀
- * $fileName:文件名
- */
- static function getFileSuffixName($fileName)
- {
- $arr = explode('.',$fileName);
- $adorn = array_pop($arr);
- return $adorn;
- }
- }
简单的演示
Read the rest of this page »
ECSHOP中的“站点地图”设置是使用 Feed 文件 sitemap.xml 通知 Google、Yahoo! 以及 Microsoft 等 Crawler(爬虫)网站上哪些文件需要索引、这些文件的最后修订时间、更改频度、文件位置、相对优先索引权,这些信息将帮助他们建立索引范围和索引的行为习惯。
现:“生成站点地图失败,请检查站点根目录、/data/目录是否允许写入。”错误。
我们首先检查根目录与/data/目录是否允许写入。
设置方法如下:
Read the rest of this page »
系统的环境是:windows 7 32 位,IIS 7 ,PHP 5.3.2 , MYSql 5.1。
错误可能是PHP配置环境的问题。与大家共同讨论下。
安装ecshop 2.7.1时,检查安装环境后,进入下一步时就出现了如下错误:
PHP Warning: date_default_timezone_get() [function.date-default-timezone-get]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘UTC’ for ’8.0/no DST’ instead in
IE下才有下面提示。FF下很奇怪的显示“未找到文件”。
根据错误提示:找到install\includes\lib_installer.php 第 223 行。将“$local_timezone = date_default_timezone_get();”改为了“$local_timezone = ‘’”。
这个错误,我想可能是我的PHP配置不正确的原因吧。
解决这个错误后,接着下一步。则又出现了“XmlHttpRequest status: [500] Unknow status.”,拦住了我们安装成功之路。
我们在安装细节里看到“创建数据库…………成功”,可能因为一些原因程序中止了安装。
确认提醒窗口,再次单击“立即安装”,虽然也出现了“XmlHttpRequest status: [500] Unknow status.”,但安装细节里提示“安装数据…………成功”。
之后这个错误一直卡着不能正常完成安装,重复多少次“立即安装”也无济于事,其实到这一卡ecshop已经安装完成了,但还是不能打开,因为data文件夹里缺少install.lock,所以才会一直提示安装。
我们可以自己给新健一个install.lock文件:在data文件夹里新健一文本文件,输入其内容为“ECSHOP INSTALLED”。然后再改名为”install.lock”就可以了。
最后再次感叹:wordpress安装就是方便,除了有时乱码,其它基本没问题。
前些天360安全卫生提醒我PHP更新到了5.3.2,今天放假,就试着安装。
系统:windows 7 旗舰版 32位;
IIS: IIS 7
PHP:PHP 5.3.2
MYSQL: MySQL 5.4
下载http://windows.php.net/downloads/releases/php-5.3.2-Win32-VC9-x86.zip。这个PHP包比较好,适合于在IIS下安装。
安装后我解压在C:根目录下。为c:/php。
然后打开windows 7 系统属性里的“高级系统设置”–“环境变量”。
修改“用户变量”和“系统变量”中的”Path”值:分别增加c:/php;(根据解你压PHP的位置而定,目的是让系统找到这两个目录的文件)。
php5.3.1不再有php5isapi.dll这一文件。不能像5.2版本那样使用ISAPI筛选器执行PHP文件了。而提供了CGI/FastCGI方式的支持。
接下来,打开IIS管理器,然后选择“添加模板映射”,




出现提示,选择“是”。
接着就是php.ini的配置设置如下:
fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
extension_dir=”C:\php\ext”
date.timezone = “Asia/Shanghai”
然后再打开一些常用的扩展,比如MYSQL。搜索“extension”,去掉相应扩展的“;”就可以了。
比如将“;extension=php_bz2.dll”改成“extension=php_bz2.dll”
关于错误:安装后会出现各种错误。这是正常的。最多的是CGI程序意外终结。
我们打开CMD,在输入php回车,如果出现“’php’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”说明PHP相关目录没有加入系统环境变量中。
如果出现找不到“OCI.dll”文件之类的。说明本机上没有安装oracle却把oracle数据库扩展打开了,需要把包含oci扩展前加上”;”,以关闭扩展。
PS:
今天新试装,百度很久没找有用东西,才自己写了一篇。新试装也有很多不清楚的。更多可以访问http://php.iis.net,更多windows PHP下载可访问http://windows.php.net/download/。
如果连接MySQL出现了“由于连接方在一段时间后没有正确答复或连接的主机没有反应”提示,应该修改“C:\Windows\System32\drivers\etc”下的hosts文件,添加一条“127.0.0.1 localhost”。