php上传文件代码示例
php上传文件也很容易。
看下面代码
if($_POST['action']=='upload'){
$InputName=$_POST['InputName'];
$fileType=array('jpg','gif','png','JPG','GIF','PNG');//允许上传的文件类型
$upfileDir='../../photo/myPhoto/';
$smallupfileDir='../../photo/myPhoto/smallPhoto/';
$maxSize=400; //单位:KB
if(!in_array(substr($_FILES['file1']['name'],-3,3),$fileType))
die("");
if(strpos($_FILES['file1']['type'],'image')===false)
die("");
if($_FILES['file1']['size'] > $maxSize*1024)
die("");
if($_FILES['file1']['error'] !=0)
die("");
$targetDir=dirname(__FILE__).'/'.$upfileDir;
$targetFile=date('Ymd').time().substr($_FILES['file1']['name'],-4,4);
$realFile=$targetDir.$targetFile;
echo dirname(__FILE__)."
";
echo $targetDir."
";
echo $targetFile."
";
echo $realFile."
";
echo $_FILES['file1']['tmp_name'];
if(function_exists('move_uploaded_file')){
//test('jpg',$_FILES['file1']['tmp_name'],$smallupfileDir.$targetFile);
MakeBuild($_FILES['file1']['tmp_name'],$smallupfileDir.$targetFile,150,90);
move_uploaded_file($_FILES['file1']['tmp_name'],$realFile) && die("");
}
else{
@copy($_FILES['file1']['tmp_name'],$realFile) && die("");
}
}
通过这个函数便可实现PHP上传。
在php上传图片的时候,我们可能还需要生成缩略图。
看下面的函数
function MakeBuild($BuildFile,$newFile,$File_width,$File_height=0,$rate=100)
{
if(!is_file($BuildFile)){
$this->msg("文件 ".$BuildFile." 不是一个有效的图形文件!\n\n系统无法生成该文件的缩略图!");
return false;
}
$data = GetImageSize($BuildFile);
switch($data[2]){
case 1:
$im = @ImageCreateFromGIF($BuildFile);
break;
case 2:
$im = @ImageCreateFromJPEG($BuildFile);
break;
case 3:
$im = @ImageCreateFromPNG($BuildFile);
break;
}
if(!$im){
return false;
}
else{
$srcW=ImageSX($im); # 取得原图宽度;
$srcH=ImageSY($im); # 取得原图高度;
$dstX=0;
$dstY=0;
if($File_height==0){
$File_height = $File_width/$srcW*$srcH;
}
if ($srcW*$File_height>$srcH*$File_width){
$fFile_height = round($srcH*$File_width/$srcW);
$dstY = floor(($File_height-$fFile_height)/2);
$fFile_width = $File_width;
}
else {
$fFile_width = round($srcW*$File_height/$srcH);
$dstX = floor(($File_width-$fFile_width)/2);
$fFile_height = $File_height;
}
$ni = ImageCreateTrueColor($File_width,$File_height);
$dstX = ($dstX<0)?0:$dstX;
$dstY = ($dstX<0)?0:$dstY; $dstX = ($dstX>($File_width/2))?floor($File_width/2):$dstX;
$dstY = ($dstY>($File_height/2))?floor($File_height/s):$dstY;
ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fFile_width,$fFile_height,$srcW,$srcH);
ImageJpeg($ni,$newFile,$rate); # 生成缩略图;
imagedestroy($im); # imagedestroy(resource) 释放image关联的内存
}
}
这样,php 上传便很容易的实现了。
本段php上传代码,也作为备份。以备哪天用到。
