首页 > 语言 > PHP > 正文

php 图片上传并预览效果

2024-09-04 11:44:32
字体:
来源:转载
供稿:网友

本文章是一款图片上传代码,他可以把上传到服务器的图片在进行预览修改,如果是你想的你就可以保存了,不是可以删除再重新上传,实例代码如下:

  1. if(!isset($_session))session_start(); 
  2.  
  3. /**2010-6-22 
  4.  * $data 数组类型    包含以下变量 
  5.  ------------------------------- 
  6.  * $sub_type        submit类型(upload:上传按钮    delete:删除按钮),默认upload 
  7.  * $file            通过表单获取的$_files['filename']数组 
  8.  * $img_tag_id        预览图片的<img>的id值 
  9.  * $img_dir            上传图片的目录 
  10.  * $max_file_size    单位m(兆),默认:1m 
  11.  * $type_array        允许的上传的图片类型(默认:image/pjpeg、image/jpeg、image/gif) 
  12.  **/ 
  13. function upload($data){ 
  14.     if(!$data['file']){ 
  15.         echo '<script>alert("file不能为空!");</script>';exit
  16.     } 
  17.     if(!$data['img_tag_id']){ 
  18.         echo '<script>alert("预览图片标签id不能为空!");</script>';exit
  19.     } 
  20.     if(!$data['img_dir']){ 
  21.         echo '<script>alert("图片上传目录不能为空!");</script>';exit
  22.     } 
  23.     if(!isset($data['max_file_size'])){ 
  24.         $data['max_file_size'] = 1024 * 1024; 
  25.     }else
  26.         $data['max_file_size'] = $data['max_file_size'] * 1024 * 1024; 
  27.     } 
  28.     if(!isset($data['type_array'])){ 
  29.         $data['type_array'] = array('image/pjpeg''image/jpeg''image/gif'); 
  30.     } 
  31.     if(!isset($data['sub_type'])){ 
  32.         $data['sub_type'] = 'upload'
  33.     } 
  34.  
  35.     $imgpath = ''
  36.     if(isset($data['sub_type']) && $data['sub_type'] == 'delete'){ 
  37.         if(isset($_session['name']) && $_session['name']){ 
  38.             if(is_file($_session['imgpath'])){ 
  39.                 $b = unlink($_session['imgpath']); 
  40.             } 
  41.             unset($_session['name'], $_session['imgpath']); 
  42.             if(!isset($_session['name'])){ 
  43.                 echo '<script>alert("删除成功!");</script>'
  44.                 echo '<script>parent.document.getelementbyid("'.$data['img_tag_id'].'").style.display = "none";</script>'
  45.             }else
  46.                 echo '<script>alert("删除失败!");</script>'
  47.             } 
  48.         }else
  49.             echo '<script>alert("没有稿件!");</script>'
  50.         }exit
  51.     } 
  52.  
  53.     if(isset($_session['imgpath']) && $_session['imgpath']){ 
  54.         echo '<script>alert("稿件已经存在,要想重新上传请删除原来的稿件!");</script>';exit
  55.     } 
  56.     if(!in_array($data['file']['type'], $data['type_array'])){ 
  57.         echo '<script>alert("稿件类型不匹配,请上传.jpg、.gif和.png格式的图片!");</script>';exit
  58.     } 
  59.     if($data['file']['size'] > $data['max_file_size']){ 
  60.         echo '<script>alert("您上传的稿件过大,请选择2m以下的图片上传!");</script>';exit
  61.     } 
  62.  
  63.     if(!is_dir($data['img_dir'])){ 
  64.         @mkdir($data['img_dir'], 0777, true); 
  65.     } 
  66.     $imgpath    = $data['img_dir'].'/'.date('his', time()).rand(100, 999).$data['file']['name']; 
  67.     $isupload    = move_uploaded_file($data['file']['tmp_name'], $imgpath); 
  68.     if(!$isupload){ 
  69.         echo '<script>alert("稿件上传失败,请尝试重新上传!");</script>';exit
  70.     }else
  71.         echo '<script>alert("稿件上传成功!");</script>'
  72.     } 
  73.     $_session['name']        = $data['file']['name']; 
  74.     $_session['imgpath']    = $imgpath
  75.  
  76.     return $imgpath
  77.  
  78. /*test_start*/ 
  79. $sub_type = ''
  80. if(isset($_post['submit_upload']))$sub_type = 'upload'
  81. if(isset($_post['submit_delete']))$sub_type = 'delete'
  82. if($sub_type){//echo '<script>alert("'.$sub_type.'");</script>';exit; 
  83.     $data = array(    'sub_type'        => $sub_type
  84.                     'file'            => $_files['file'], 
  85.                     'img_tag_id'    => 'picview'
  86.                     'img_dir'        => 'upload_img'
  87.                   ); 
  88.     $imgpath = upload($data); 
  89. }else
  90.     $imgpath = isset($_session['imgpath'])? $_session['imgpath']: ''
  91. ?> 
  92.  
  93. <form action="ad.php" method="post" enctype="multipart/form-data" target="frame"
  94.     <input type="file" name="file" class="input"
  95.     <input type="submit" name="submit_upload" value="上  传"
  96.     <input type="submit" name="submit_delete" value="删  除"
  97.     <iframe id="frame" name="frame" width="0" height="0" marginwidth="0" frameborder="0" src="about:blank"></iframe> 
  98. </form> 
  99.  
  100. <img id="picview" height="100" style="display:none;"
  101. //开源代码Vevb.com 
  102. <script> 
  103. if("<?php echo $imgpath; ?>"){ 
  104.     parent.document.getelementbyid("picview").src = "<?php echo $imgpath; ?>"
  105.     parent.document.getelementbyid("picview").style.display = "block"
  106. </script> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表