php上传图片功能的实现

发布时间:2020-10-21编辑:脚本学堂
php上传图片功能的实现,供大家学习参考。

一、建静态页面,要实现上传功能,其实模板很简单,upload.html代码如下:

复制代码 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>图片上传</title>
</head>
<body>
<form action="upload.php?act=upload" method="post" enctype="multipart/form-data" >
请选择您要上传的图片:<input name="pic" type="file" id="pic" />
<br /><br />
图片介绍:<input name="img_js" type="text" id="img_js" /><br /><br />
<input name="上传" type="submit" id="上传" value="上传" />
</form>
</body>
</html>

二、PHP代码
 

复制代码 代码如下:

<?php
/*
* Author : 甘宇
* Email : ganyu_0808@163.com
* action : 图片上传
* Date   : 2009-12-3
*/

require_once '../xmphp/init.php'; //全站配置文件
require_once XMPHP_COMMON.'/smarty.php';//smarty功能
require_once XMPHP_COMMON.'/mysql.php'; //mysql功能
require_once XMPHP_COMMON.'/func.php';//站内函数
   header('Cache-control:Private');//提交前保留所写内容
   if (isset($_GET['act']) && $_GET['act'] == 'upload') {

   $pic = isset($_FILES['pic']) ? $_FILES['pic'] : '';
   $img_js = isset($_POST['img_js']) ? $_POST['img_js'] :'';
   $upload_time = time();
  //var_dump($pic);
   //结果:array(5) { ["name"]=> string(7) "hot.jpg" ["type"]=> string(11) "image/pjpeg" ["tmp_name"]=> string(26) //"C:WINDOWSTempphp145.tmp" ["error"]=> int(0) ["size"]=> int(16405) }
   if ($pic['name'] == '') {
    alert ('请选择图片');
    exit;
   }
   if ($pic['error'] != 0) {
    alert ('上传错误,请返回重试');
    exit;
   }
   if ($img_js == '') {
     alert('请填写图片介绍');
     exit;
   }
   $houzhui = pathinfo($pic['name']);
   //var_dump($houzhui);
   //结果:array(4) { ["dirname"]=> string(1) "." ["basename"]=> string(7) "hot.jpg" ["extension"]=> string(3) "jpg" ["filename"]=> //string(3) "hot" }
   if ( !in_array($houzhui['extension'],array('jpg','gif','png','JPG','GIF','PNG')) ) {
    alert ('上传格式不对,请返回重试');
    exit;
   }
//   if ($pic['size'] > 2*1024*1024) {
//    alert ('所选图片大于2M,请重新选择');
//    exit;
//   }
   if ($pic['size'] >200*1024) {
    alert ('所选图片大于200K,请重新选择');
    exit;
   }
   $dir_name = date('Ymd');
   $dir = 'upload/'.$dir_name;
   if (!file_exists($dir)) {
    @mkdir($dir);
   }
  $image_name = $dir_name.rand(0,1000).'.'.$houzhui['extension'];
   if (move_uploaded_file($pic['tmp_name'],$dir.'/'.$image_name)) { //move_uploaded_file(old,new) -- 将上传的文件移动到新位置
    $sql = "INSERT INTO `upload` (`img_js`,`img_name`,`upload_time`) VALUES ('{$img_js}','{$image_name}','{$upload_time}')";
    $res = mysql_query($sql);
    if ($res) {
     alert ('上传成功');
     exit;
    }
    else {
     alert ('上传失败');
     exit;
    }
   }else {
    alert('文件移动出错');
    exit;
   }
   }
$tpl->display ('admin/tpl/upload.html');
?>

您可能感兴趣的文章:
php 多图片上传的简单例子(图文)
php GD库上传图片并创建缩略图的代码
php图片加水印与上传图片加水印类
php上传图片并打上透明水印的代码
php上传文件并添加文字与图片水印的代码
php 上传图片加水印且支持透明的代码