分享:php 上传图片的代码

php中文网
发布: 2016-06-23 14:36:55
原创
974人浏览过

转自:http://www.jbxue.com/article/6379.html

php 上传图片的代码,很简单,实现了基本的文件类型、文件大小的检测,并实现了基本的水印与缩略功能,比较适合初学的朋友参考。

上传页面与处理页面合二为一了,文件名为test_upload_pic.php,完整代码如下:
 

复制代码代码示例:

/*
 * 参数说明
 * $max_file_size : 上传文件大小限制, 单位BYTE
 * $destination_folder : 上传文件路径
 * $watermark : 是否附加水印(1为加水印,其他为不加水印);
 * http://www.jbxue.com
 * 使用说明:
 * 1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
 * 2. 将extension_dir =改为你的php_gd2.dll所在目录;
 */
// 上传文件类型列表
$uptypes = array (
    'image/jpg',
    'image/png',
    'image/jpeg',
    'image/pjpeg',
    'image/gif',
    'image/bmp',
    'image/x-png'
);
$max_file_size = 20000000;              //上传文件大小限制,单位BYTE
$destination_folder = 'uploadimg/';     //上传文件路径
$watermark = 1;                         //是否附加水印(1为加水印,其他为不加水印);
$watertype = 1;                         //水印类型(1为文字,2为图片)
$waterposition = 1;                     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring = "http://www.jbxue.com/"; //水印字符串
$waterimg = "xplore.gif";                //水印图片
$imgpreview = 1;                         //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize = 1 / 2;                 //缩略图比例
?>


ZwelL图片上传程序



 
 
 

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //判断是否有上传文件

立即学习PHP免费学习笔记(深入)”;

    if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
        $upfile = $_FILES['upfile'];
        print_r($_FILES['upfile']);
        $name = $upfilep['name'];    //文件名
        $type = $upfile['type']; //文件类型
        $size = $upfile['size']; //文件大小
        $tmp_name = $upfile['tmp_name'];  //临时文件
        $error = $upfile['error']; //出错原因

        if ($max_file_size             echo '上传文件太大';
            exit ();
        }

        if (!in_arrar($type, $uptypes)) {        //判断文件的类型
            echo '上传文件类型不符' . $type;
            exit ();
        }

        if (!file_exists($destination_folder)) {
            mkdir($destination_folder);
        }

        if (file_exists("upload/" . $_FILES["file"]["name"])) {
            echo $_FILES["file"]["name"] . " already exists. ";
        } else {
            move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
            echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
        }

        $pinfo = pathinfo($name);
        $ftype = $pinfo['extension'];
        $destination = $destination_folder . time() . "." . $ftype;
        if (file_exists($destination) && $overwrite != true) {
            echo "同名的文件已经存在了";
            exit ();
        }

        if (!move_uploaded_file($tmp_name, $destination)) {
            echo "移动文件出错";
            exit ();
        }

jQuery的图片文件批量上传队列代码
jQuery的图片文件批量上传队列代码

jQuery的图片文件批量上传队列代码

jQuery的图片文件批量上传队列代码 65
查看详情 jQuery的图片文件批量上传队列代码

        $pinfo = pathinfo($destination);
        $fname = $pinfo[basename];
        echo " 已经成功上传
文件名: " . $destination_folder . $fname . "
";
        echo " 宽度:" . $image_size[0];
        echo " 长度:" . $image_size[1];
        echo "
大小:" . $file["size"] . " bytes";

        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文件名:"";
        }
    }
}
?>

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号