首页 > PHP开发 > php上传文件代码示例

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上传代码,也作为备份。以备哪天用到。

分类: PHP开发 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.