(代码片断试验成功,成功上传!)
因为昨天想起来学习一下PHP代码的冲动,是来源于像模仿着做一个类似公司IMAGE LIBRARY的东西出来。所以,今天当最基本的功能实现后,对PHP有了个概念性的认识后,就很自然地想到了个重要的功能急待实现,那就是图片的上传。
于是,开始在网上搜罗,找到个别人博客里的由三个页面组成的代码片断,于是拷下来研究,结果始终调试不成。本以为是公司电脑入域问题在作怪,后来经过一番尝试后,打算暂时放一下。回家去试(因为家里的电脑是最纯净的环境配制)。
到家后,将代码拷出来尝试了一下,依旧不行,同样的报错内容。很来4源gaodaimacom搞#代%码*网搞代gaodaima码
果断地,打算另辟蹊径,重新找个代码片断。哈,非常顺利,找到个仅一个页面的代码片断,一次尝试便成功了。CHEERS!
————以下代码转载而来,贴上来和大家分享——–
<BR><?php <BR>$uptypes=array('image/jpg', //上传文件类型列表 <BR>'image/jpeg', <BR>'image/png', <BR>'image/pjpeg', <BR>'image/gif', <BR>'image/bmp', <BR>'image/x-png'); <BR>$max_file_size=5000000; //上传文件大小限制, 单位BYTE <BR>$destination_folder="upload/"; //上传文件路径 <BR>$watermark=1; //是否附加水印(1为加水印,其他为不加水印); <BR>$watertype=1; //水印类型(1为文字,2为图片) <BR>$waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); <BR>$waterstring="newphp.site.cz"; //水印字符串 <BR>$waterimg="xplore.gif"; //水印图片 <BR>$imgpreview=1; //是否生成预览图(1为生成,其他为不生成); <BR>$imgpreviewsize=1/2; //缩略图比例 <BR>?> <BR> <BR> <BR><title>M4U BLOG - fywyj.cn</title> <BR><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <BR><style type="text/css">body,td{font-family:tahoma,verdana,arial;font-size:11px;line-height:15px;background-color:white;color:#666666;margin-left:20px;} <BR>strong{font-size:12px;} <BR>aink{color:#0066CC;} <BR>a:hover{color:#FF6600;} <BR>aisited{color:#003366;} <BR>a:active{color:#9DCC00;} <BR>table.itable{} <BR>td.irows{height:20px;background:url("index.php?i=dots" repeat-x bottom}</style> <BR> <BR><body> <BR> <BR>上传文件: <br><br><br> <BR> <BR><br><br><br> <BR>允许上传的文件类型为:jpg|jpeg|png|pjpeg|gif|bmp|x-png|swf <br><br> <BR>返回 <BR> <BR><?php <BR>if ($_SERVER['REQUEST_METHOD'] == 'POST') <BR>{ <BR>if (!is_uploaded_file($_FILES["upfile"][tmp_name])) <BR>//是否存在文件 <BR>{ <BR>echo "<font color='red'>文件不存在!</font>"; <BR>exit; <BR>} <BR>$file = $_FILES["upfile"]; <BR>if($max_file_size < $file["size"]) <BR>//检查文件大小 <BR>{ <BR>echo "<font color='red'>文件太大!</font>"; <BR>exit; <BR>} <BR>if(!in_array($file["type"], $uptypes)) <BR>//检查文件类型 <BR>{ <BR>echo "<font color='red'>只能上传图像文件或Flash!</font>"; <BR>exit; <BR>} <BR>if(!file_exists($destination_folder)) <BR>mkdir($destination_folder); <BR>$filename=$file["tmp_name"]; <BR>$image_size = getimagesize($filename); <BR>$pinfo=pathinfo($file["name"]); <BR>$ftype=$pinfo[extension]; <BR>$destination = $destination_folder.time().".".$ftype; <BR>if (file_exists($destination) && $overwrite != true) <BR>{ <BR>echo "<font color='red'>同名文件已经存在了!"; <BR>exit; <BR>} <BR>if(!move_uploaded_file ($filename, $destination)) <BR>{ <BR>echo "<font color='red'>移动文件出错!"; <BR>exit; <BR>} <BR>$pinfo=pathinfo($destination); <BR>$fname=$pinfo[basename]; <BR>echo " <font color="red">已经成功上传</font><br>文件名: <font color="blue">".$destination_folder.$fname."</font><br>"; <BR>echo " 宽度:".$image_size[0]; <BR>echo " 长度:".$image_size[1]; <BR>if($watermark==1) <BR>{ <BR>$iinfo=getimagesize($destination,$iinfo); <BR>$nimage=imagecreatetruecolor($image_size[0],$image_size[1]); <BR>$white=imagecolorallocate($nimage,255,255,255); <BR>$black=imagecolorallocate($nimage,0,0,0); <BR>$red=imagecolorallocate($nimage,255,0,0); <BR>imagefill($nimage,0,0,$white); <BR>switch ($iinfo[2]) <BR>{ <BR>case 1: <BR>$simage =imagecreatefromgif($destination); <BR>break; <BR>case 2: <BR>$simage =imagecreatefromjpeg($destination); <BR>break; <BR>case 3: <BR>$simage =imagecreatefrompng($destination); <BR>break; <BR>case 6: <BR>$simage =imagecreatefromwbmp($destination); <BR>break; <BR>default: <BR>die("<font color='red'>不能上传此类型文件!"); <BR>exit; <BR>} <BR>imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); <BR>imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); <BR>switch($watertype) <BR>{ <BR>case 1: //加水印字符串 <BR>imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); <BR>break; <BR>case 2: //加水印图片 <BR>$simage1 =imagecreatefromgif("xplore.gif"); <BR>imagecopy($nimage,$simage1,0,0,0,0,85,15); <BR>imagedestroy($simage1); <BR>break; <BR>} <BR>switch ($iinfo[2]) <BR>{ <BR>case 1: <BR>//imagegif($nimage, $destination); <BR>imagejpeg($nimage, $destination); <BR>break; <BR>case 2: <BR>imagejpeg($nimage, $destination); <BR>break; <BR>case 3: <BR>imagepng($nimage, $destination); <BR>break; <BR>case 6: <BR>imagewbmp($nimage, $destination); <BR>//imagejpeg($nimage, $destination); <BR>break; <BR>} <BR>//覆盖原上传文件 <BR>imagedestroy($nimage); <BR>imagedestroy($simage); <BR>} <BR>if($imgpreview==1) <BR>{ <BR>echo "<br>图片预览:<br>"; <BR>echo "echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\" border='0'>"; <BR>} <BR>} <BR>?> <BR> <BR> <BR> <BR>