PHP文件上传类
<?php
/**
*
* @name 文件管理类
* @author lession
*
*/
class File{
//上传文件大小,以字节记
var $fileSize;
//上传文件类型,对于IE,识别jpg文件的类型必须是pjpeg,对于 FireFox,必须是jpeg。
var $fileType;
//上传文件名称
var $fileName;
//上传文件临时存储位置
var $fileTemp;
//由文件上传引发的错误代码
var $fileError;
/**
* @name 构造函数
*/
function File(){
$this->fileName=$_FILES["file"]["name"];
$this->fileType=$_FILES["file"]["type"];
$this->fileSize=$_FILES["file"]["size"];
$this->fileTemp=$_FILES["file"]["tmp_name"];
$this->fileError=$_FILES["file"]["error"];
}
/**
* @name 文件上传,只能是图片
* @param $headFileName 上传文件待命名名称前缀,如20100331101126_21136.gif中的20100331101126
* @param $fileSize 上传文件大小限制,以kb计
* @param $dir 上传文件存放目录
* @return $newFileName
*/
function uploadFile($headFileName,$fileSize,$dir){
$fileType1="image/gif";
$fileType2="image/jpeg";
$fileType3="image/pjpeg";
$fileType4="image/x-png";
//没有选择文件
if ($this->fileName==NULL){
//表单中没有选择文件
if ($this->fileError==4){
echo "<script>alert(¹Choose a picture,please!¹);</script>";
return ;
}
//刚点击链接
else{
//echo "I¹m dead2!";
return ;
}
}
//已选择文件
else {
switch ($this->fileError){
//文件大小超过了php.ini里面允许的大小
case 1:
echo "<script>alert(¹The size of picture must be less than 1M!¹);</script>";
return ;
break;
case 3:
echo "<script>alert(¹Error!¹);</script>";
return ;
break;
default:
if(!($this->fileType== $fileType1||$this->fileType==$fileType2||$this->fileType==$fileType3||$this->fileType==$fileType4)){
echo "<script>alert(¹Only for *.jpg,*.jpeg,*.gif or *.png!¹);</script>";
return ;
}
if(($this->fileSize/1024>$fileSize)){
echo "<script>alert(¹The size of picture must be less than 1M!¹);</script>";
return ;
}else{
$newFileName=$this->fileType==$fileType1?$headFileName."_".rand(1000,99999).".gif":($this->fileType==$fileType4?$headFileName."_".rand(1000,99999).".png":$headFileName."_".rand(1000,99999).".jpg");
/*echo "文件名: ".$this->fileName."<br />";
echo "文件类型: ".$this->fileType."<br />";
echo "文件大小: ".($this->fileSize/1024)." Kb<br />";
echo "存储临时目录: ".$this->fileTemp."<br />";*/
if (file_exists($newFileName)){
echo "<script>alert(¹Picture upload fail!¹);</script> ";
return ;
}else{
//echo $newFileName."<br>";
move_uploaded_file($this->fileTemp,$dir.$this->fileName);
rename($dir.$this->fileName,$dir.$newFileName);
//echo "存储目录: ".$dir.$newFileName;
//echo "<script>alert(¹照片上传成功!¹);</script>";
return $newFileName;
}
}
}//switch结束
}
}//function uploadFile($fileSize,$dir)结束
/**
* @name 大文件上传,不能是图片
* @param $headFileName 上传文件待命名名称前缀,如20100331101126_21136.gif中的20100331101126
* @param $fileSize 上传文件大小限制,以kb计
* @param $dir 上传文件存放目录
* @return $newFileName
*/
function uploadBigFile($headFileName,$fileSize,$dir){
//没有选择文件
if ($this->fileName==NULL){
//表单中没有选择文件
if ($this->fileError==4){
echo "<script>alert(¹Choose a file,please!¹);</script>";
return ;
}
//刚点击链接
else{
//echo "I¹m dead2!";
return ;
}
}
//已选择文件
else {
switch ($this->fileError) {
//文件大小超过了php.ini里面允许的大小
case 1:
echo "<script>alert(¹The size of picture must be less than ".($fileSize/1024)."M!¹);</script>";
return ;
break;
case 3:
echo "<script>alert(¹Error!¹);</script>";
return ;
break;
default:
if(($this->fileSize/1024>$fileSize)){
echo "<script>alert(¹The size of picture must be less than ".($fileSize/1024)."M!¹);</script>";
return ;
}else{
$newFileName=$headFileName."_".rand(1000,99999).".".mb_substr($this->fileName,strrpos($this->fileName,".")+1,3,"utf8");
/*echo "文件名: ".$this->fileName."<br />¹;
echo "文件类型: ".$this->fileType."<br />";
echo "文件大小: ".($this->fileSize/1024)." Kb<br />";
echo "存储临时目录: ".$this->fileTemp."<br />";*/
if (file_exists($newFileName)){
echo "<script>alert(¹file onload fail!¹);</script> ";
return ;
}else{
//echo $newFileName."<br>";
move_uploaded_file($this->fileTemp,$dir.$this->fileName);
rename($dir.$this->fileName,$dir.$newFileName);
//echo "存储目录: ".$dir.$newFileName;
//echo "<script>alert(¹照片上传成功!¹);</script>";
return $newFileName;
}
}
}//switch结束
}
}//function uploadBigFile($fileSize,$dir)结束
/**
* @name 文件修改
* @param $headFileName 上传文件待命名名称前缀,如20100331101126_21136.gif中的20100331101126
* @param $dir
* @param $fileName
* @param $fileSize
*/
function updateFile($headFileName,$dir,$fileName,$fileSize) {
//先删除原文件
$this->deleteFile($dir,$fileName);
//再新增文件
$newFileName=$this->uploadFile($headFileName,$fileSize,$dir);
return $newFileName;
}
/**
* @name 文件删除
* @param $fileName 要删除的文件名
*/
function deleteFile($dir,$fileName) {
if (file_exists($dir.$fileName))
unlink($dir.$fileName);
else
echo "No such file!";
}
}
?>
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)