• 技术文章 >后端开发 >php教程

    php图片上传存储源码并且可以预览_php技巧

    2016-05-17 09:15:55原创491
    复制代码 代码如下:

    header("content-Type: text/html; charset=gb2312");
    $uptypes=array('image/jpg', //上传文件类型列表
    'image/jpeg',
    'image/png',
    'image/pjpeg',
    'image/gif',
    'image/bmp',
    'application/x-shockwave-flash',
    'image/x-png',
    'application/msword',
    'audio/x-ms-wma',
    'audio/mp3',
    'application/vnd.rn-realmedia',
    'application/x-zip-compressed',
    'application/octet-stream');
    $max_file_size=10000000; //上传文件大小限制, 单位BYTE
    $path_parts=pathinfo($_SERVER['PHP_SELF']); //取得当前路径
    $destination_folder="up/"; //上传文件路径
    $watermark=0; //是否附加水印(1为加水印,0为不加水印);
    $watertype=1; //水印类型(1为文字,2为图片)
    $waterposition=2; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
    $waterstring="www.yinao.tk"; //水印字符串
    $waterimg="xplore.gif"; //水印图片
    $imgpreview=1; //是否生成预览图(1为生成,0为不生成);
    $imgpreviewsize=1/1; //缩略图比例
    ?>


    图片上传储存


















    最大文件限制1M


    onchange="javascript:FileChange(this.value);">

    允许上传的文件类型为:jpg|jpeg|gif|bmp|png|swf|mp3|wma|zip|rar|doc

    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
    if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
    //是否存在文件
    {
    echo "文件不存在!";
    exit;
    }
    $file = $_FILES["upfile"];
    if($max_file_size < $file["size"])
    //检查文件大小
    {
    echo "文件太大!";
    exit;
    }
    if(!in_array($file["type"], $uptypes))
    //检查文件类型
    {
    echo "不能上传此类型文件!";
    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;
    if (file_exists($destination) && $overwrite != true)
    {
    echo "同名文件已经存在了!";
    exit;
    }
    if(!move_uploaded_file ($filename, $destination))
    {
    echo "移动文件出错!";
    exit;
    }
    $pinfo=pathinfo($destination);
    $fname=$pinfo[basename];
    echo " 成功上传,鼠标移动到地址栏自动复制
    图片UBB代码
    文件地址:
    文件地址:
    ";
    echo " 宽度:".$image_size[0];
    echo " 长度:".$image_size[1];
    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("不能上传此类型文件!");
    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 "
    图片预览:
    ";
    echo "\"图片预览:\r文件名:".$fname."\r上传时间:".date('m/d/Y";
    }
    }
    ?>



    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php图片上传
    上一篇:PHP中通过语义URL防止网站被攻击的方法分享_php技巧 下一篇:PHP session会话的安全性分析_php技巧
    千万级数据并发解决方案

    相关文章推荐

    • 实例详解怎么用PHP实现简易的MVC框架• 什么是php-fpm?如何进行优化来提升性能?• 消息队列RabbitMQ入门与PHP实例详解• php入门教程 精简版_PHP教程• 一个php作的文本留言本的例子(三)_PHP教程
    1/1

    PHP中文网