麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
为村里做一下贡献,上传一个刚写的上传类,希望大家给点意见
悬赏分:20 - 2007年08月16日

[PHP]
<?php
/**
*上传文件
*@upload file
*@author dzjzmj
*@date 2005-04-05
*@copyright dzjzmj@163.com
*/
class upLoadFile {
/**
*表名
*@var string
*/
var $tableName;
/**
*上传路径
*@ var string
*/
var $path;
/**
*构析函数
*@return void
*/
function upLoadFile(
$tableName = 'upload_file'
)
{
global $cfg;
$this->tableName = $tableName;
$this->path = $cfg['path']['data'] . 'UserUploaded/';

}
/**
*上传文件,并注册
*@param array $file
*@param string $file_type
*@param string or array $allow_ext
*@param boll $register
*@return int
*/
function upLoad($file, $file_type = 'other', $allow_ext = NULL, $register=true)
{
switch ($file['error'])
{
case UPLOAD_ERR_INI_SIZE : //值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
case UPLOAD_ERR_FORM_SIZE : //值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
die('文件上传失败!失败原因:您选择的附件文件大小已经超过本系统的限制字节)!');
$upload_succeed = false;
break;
case UPLOAD_ERR_PARTIAL : //值:3; 文件只有部分被上传。
die('文件上传失败!失败原因:文件只有部分被上传!');
$upload_succeed = false;
break;
case UPLOAD_ERR_NO_FILE : //值:4; 没有文件被上传。
die('文件上传失败!失败原因:没有文件被上传!');
$upload_succeed = false;
break;
default : // UPLOAD_ERR_OK: //值:0; 没有错误发生,文件上传成功。
$upload_succeed = true;
break;
}
if ($upload_succeed)
{
$upload_path = $this->path . $file_type . '/';
if (!is_dir($upload_path))
{
$dirname = '';
$folders = explode('/',$upload_path);
foreach ($folders as $folder)
{
$dirname .= $folder . '/';
if ($folder!='' && $folder!='.' && $folder!='..' && !is_dir($dirname))
mkdir($dirname);
}
}
chmod($upload_path,0777);
$filename = date('YmdHis');
//
$pos = strrpos($file['name'], '.');
if ($pos===false)
$fileExt = '';
else
$fileExt = substr($file['name'], $pos+1);
if ($allow_ext !== NULL)
{//判断扩展名是否允许,为NULL不限制扩展名
if(!is_array($allow_ext))
$allow_ext = explode(',',$allow_ext);
if (!in_array($fileExt,$allow_ext))
die('对不起,不允许上传该类形文件.允许该类型为'.implode(',',$allow_ext));
}
$dot = $fileExt?'.':'';
$filefullname = $filename . $dot . $fileExt;
$i = 0;
//判断是否有重名文件
while (is_file($upload_path . $filefullname))
$filefullname = $filename . $i++ . $dot . $fileExt;
if (move_uploaded_file($file['tmp_name'], $upload_path . $filefullname))
{//文件上传成功
if ($register)
{
$file_info = array(
'file_id' => '',
'file_name' => $file['name'],
'file_size' => $file['size'],
'file_mime' => $file['type'],
'file_type' => $file_type,
'file_url' => $filefullname,
'file_date' => date('Y-m-d H:i:s'),
'user_id' => 0,
'remote_address'=> $_SERVER['REMOTE_ADDR']
);
return $this->registerFile($file_info);
}
else
return true;
}
else
die('文件上传失败!失败原因:本地文件系统读写权限出错!');

}

}
/**
*注册文件
*@param array $file_info
*return int
*/
function registerFile($file_info)
{
global $query;
$result = false;
if ($file_info)
{
$file_info['file_id'] = $query->getValue('SELECT MAX(file_id) FROM '. $this->tableName)+1;
$query->execute('INSERT INTO `'.$this->tableName.'` (`file_id`,`file_name`,`file_size`,`file_mime`,`file_type`,`file_url`,'.
'`file_date`,`user_id`,`remote_address`) VALUES ('
.$file_info['file_id']
.',\''.$file_info['file_name']
.'\','.$file_info['file_size']
.',\''.$file_info['file_mime']
.'\',\''.$file_info['file_type']
.'\',\''.$file_info['file_url']
.'\',\''.$file_info['file_date']
.'\','.$file_info['user_id']
.',\''.$file_info['remote_address'].'\')');
$result = $file_info['file_id'];
}
return $result;
}
/**
*撤消注册
*@param int $file_id
*return bool
*/
function deregisterFile($file_id)
{
global $query;
$result = false;
if ($file_id)
$result = $query->execute('DELETE FROM `' . $this->tableName . '` WHERE `file_id`=' . intval($file_id));
return $result;
}
/**
*删除文件
*@param int $file_id
*@param deregister
*return bool
*/
function deleteFile($file_id, $deregister=true)
{
if (!$file_id)
return false;
$file_url = $this->getFileUrl($file_id);
if ($file_url)
{
if (is_file($file_url))
unlink($file_url);
if ($deregister)
return $this->deregisterFile($file_id);
else
return true;
}
else
return false;
}
/**
*获取上传文件url
*@param int $file_id
*return string
*/
function getFileUrl($file_id)
{
global $query;
if (!$file_id)
return false;
$file_info = $query->getValue('SELECT * FROM `' . $this->tableName . '` WHERE `file_id`=' . intval($file_id));
if ($file_info)
return $this->path . $file_info['file_type'] . '/' . $file_info['file_url'];
else
return false;
}
}
?>
[/PHP]

提问者:dzjzmj   08-16 17:05
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
49 + 22 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM