php的上传!用iframe的 不指定

Else , 2007/12/03 01:44 , 代码片段,演示也有 , 评论(0) , 阅读(2215) , Via 本站原创 | |
本来想用ajax,但是不支持,所以只好放弃了!用window.open的,不好后退,最好的还是下面的这个
<html>
<head>
<title>php图片上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">body {
  margin-left: 1px;
  margin-top: 1px;
  margin-right: 1px;
  margin-bottom: 1px;
  background-color: #D3EFFC;
}
</style>
</head>
<body>
<?php
if ($_GET['act']=="save"){
  $uptypes=array('image/jpg',  //上传文件类型列表
  'image/jpeg',
  'image/png',
  'image/pjpeg',
  'image/gif',
  'image/bmp',
  'application/x-shockwave-flash',
  'image/x-png');
  $max_file_size=5000000;   //上传文件大小限制, 单位BYTE
  $destination_folder="../attached/shop/"; //上传文件路径
  $watermark=0;   //是否附加水印(1为加水印,其他为不加水印);
  $watertype=1;   //水印类型(1为文字,2为图片)
  $waterposition=1;   //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
  $waterstring="cuku"; //水印字符串
  $waterimg="xplore.gif";  //水印图片
  $imgpreview=1;   //是否生成预览图(1为生成,其他为不生成);
  $imgpreviewsize=1/2;  //缩略图比例
  ?>
  <?php
  if ($_SERVER['REQUEST_METHOD'] == 'POST')
  {
  if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
  //是否存在文件
  {
  echo "<script>alert(\"请选择图片\");history.go(-1);</script>";
  exit;
  }
  
  $file = $_FILES["upfile"];
  if($max_file_size < $file["size"])
  //检查文件大小
  {
  echo "<script>alert(\"文件太大\");history.go(-1);</script>";
  exit;
    }
  
  if(!in_array($file["type"], $uptypes))
  //检查文件类型
  {
  echo "<script>alert(\"只能上传图片\");history.go(-1);</script>";
  exit;
  }
  
  if(!file_exists($destination_folder))
  mkdir($destination_folder);
  
  $filename=$file["tmp_name"];
  $image_size = getimagesize($filename);
  $pinfo=pathinfo($file["name"]);
  $ftype=$pinfo[extension];
                            
  //$destination = $destination_folder.time().".".$ftype;
  $destination = $destination_folder.date("YmdHis").rand(000,999).".".$ftype;
  if (file_exists($destination) && $overwrite != true)
  {
     echo "<script>alert(\"相同的文件存在\");history.go(-1);</script>";
     exit;
    }
  
  if(!move_uploaded_file ($filename, $destination))
  {
    echo "<script>alert(\"文件移动出错\");history.go(-1);</script>";
     exit;
    }
  
  $pinfo=pathinfo($destination);
  $fname=$pinfo[basename];
  echo " <font color=red>已经成功上传</font>&nbsp;<span onclick=history.go(-1)>返回</span>";
  if($watermark==1)
  {
  $iinfo=getimagesize($destination,$iinfo);
  $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
  $white=imagecolorallocate($nimage,255,255,255);
  $black=imagecolorallocate($nimage,0,0,0);
  $red=imagecolorallocate($nimage,255,0,0);
  imagefill($nimage,0,0,$white);
  switch ($iinfo[2])
  {
  case 1:
  $simage =imagecreatefromgif($destination);
  break;
  case 2:
  $simage =imagecreatefromjpeg($destination);
  break;
  case 3:
  $simage =imagecreatefrompng($destination);
  break;
  case 6:
  $simage =imagecreatefromwbmp($destination);
  break;
  default:
  die( "<script>alert(\"不能上传这类的型的图片\");history.go(-1);</script>");
  exit;
  }
  
  imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
  imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);
  
  switch($watertype)
  {
  case 1:  //加水印字符串
  imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
  break;
  case 2:  //加水印图片
  $simage1 =imagecreatefromgif("xplore.gif");
  imagecopy($nimage,$simage1,0,0,0,0,85,15);
  imagedestroy($simage1);
  break;
  }
  
  switch ($iinfo[2])
  {
  case 1:
  //imagegif($nimage, $destination);
  imagejpeg($nimage, $destination);
  break;
  case 2:
  imagejpeg($nimage, $destination);
  break;
  case 3:
  imagepng($nimage, $destination);
  break;
  case 6:
  imagewbmp($nimage, $destination);
  //imagejpeg($nimage, $destination);
  break;
  }
  
  //覆盖原上传文件
  imagedestroy($nimage);
  imagedestroy($simage);
  }
  
  if($imgpreview==1)
  {
  echo "<script language=\"javascript\">parent.form1.cover.value='". $destination."'</script>";
  }
  }
}
?>
<?php
if ($_GET['act']=="up"){
?>
<form enctype="multipart/form-data" method="post" name="upform" action="?act=save">
  <input name="upfile" type="file"  style="width:200;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17">
<input type="submit" value="上传" style="width:30;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17">
<br>
</form>

<?php } ?>
</body>
</html>
Tags: ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]