`
dcdc723
  • 浏览: 188145 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php 图片 上传 程序

    博客分类:
  • PHP
阅读更多
<?php
/******************************************************************************

参数说明:
$max_file_size  : 上传文件大小限制, 单位BYTE
$destination_folder : 上传文件路径
$watermark   : 是否附加水印(1为加水印,其他为不加水印);

使用说明:
1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
2. 将extension_dir =改为你的php_gd2.dll所在目录;
******************************************************************************/

//上传文件类型列表
$uptypes=array(
    'image/jpg',
    'image/jpeg',
    'image/png',
    'image/pjpeg',
    'image/gif',
    'image/bmp',
    'image/x-png'
);

$max_file_size=2000000;     //上传文件大小限制, 注意单位是BYTE 并不是K,1024*1024*2(2MB)
$destination_folder="uploadimg/"; //上传文件路径
$watermark=1;      //是否附加水印(1为加水印,其他为不加水印);
$watertype=1;      //水印类型(1为文字,2为图片)
$waterposition=1;     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring="http://www.tipnet.cn/";  //水印字符串
$waterimg="图片文件名";    //水印图片
$imgpreview=1;      //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize=1/2;    //缩略图比例
?>
<html>
<head>
<title>php 图片 上传 程序</title>
<style type="text/css">
<!--
body
{
     font-size: 9pt;
}
input
{
     background-color: #66CCFF;
     border: 1px inset #CCCCCC;
}
-->
</style>
</head>

<body>
<form enctype="multipart/form-data" method="post" name="upform">
  上传文件:
  <input name="upfile" type="file">
  <input type="submit" value="上传"><br>
  允许上传的文件类型为:<?=implode(', ',$uptypes)?>
</form>

<?php
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 "文件类型不符!".$file["type"];
        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 " <font color=red>已经成功上传</font><br>文件名:  <font color=blue>".$destination_folder.$fname."</font><br>";
    echo " 宽度:".$image_size[0];
    echo " 长度:".$image_size[1];
    echo "<br> 大小:".$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("图片地址");
            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 "<br>图片预览:<br>";
    echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);
    echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">";
    }
}
?>
</body>

 

2
0
分享到:
评论

相关推荐

    一个php图片上传程序

    【PHP图片上传程序详解】 PHP图片上传程序是Web开发中常见的功能之一,它允许用户通过浏览器将图片上传到服务器,并进行必要的处理,如缩放、裁剪或添加水印等。在本项目中,我们看到的是一款基于Apache Web服务器...

    基于PHP的CF php图片上传程序 TIGER修改版.zip

    【标题】"基于PHP的CF php图片上传程序 TIGER修改版.zip" 指的是一款经过TIGER改进的PHP图片上传程序,主要用于在ColdFusion(简称CF)环境中处理图片上传的功能。这个程序可能包含了优化的代码、增强的安全性、更好...

    PHP实例开发源码—CF php图片上传程序 TIGER修改版.zip

    这个压缩包"PHP实例开发源码—CF php图片上传程序 TIGER修改版.zip"包含了一个基于PHP实现的图片上传功能的源代码,可能是针对某个特定项目或平台的定制版本,比如Cloudflare(CF)的集成。下面我们将详细探讨PHP...

    PHP多图片上传程序 2.4.3.rar

    在某网站看到其程序,索要及...PHP图片上传程序 2.4.3 更新如下内容 1.修正水印位置设置无效的问题 2.修复因BOM 格式造成火狐浏览器多以外字符的问题(造成返回网址多额外字符) 运行服务器为Apache QQ:909507090

    PHP,PHP 图片上传,上传

    PHP 图片上传程序,PHP,PHP 图片上传,上传

    php图片上传程序

    php图片上传程序,您可以上传一个JPEG,GIF或PNG图片。(最大为2MB)你也可以上传一个ZIP名为upload.zip,含有多个图像。 安装说明: 上传即可使用,如果需要使用后台,要用phpmyadmin新建数据库并导入说明文件...

    Chevereto图片上传程序 v2.5.2.zip

    Chevereto图片上传程序源码是一款非常简洁的PHP图片上传程序,可以将本地电脑上或者是网络上的图片上传到服务器上。以前的Chevereto不需要MySQL数据库,现在需要了,不过这一改变只是为了提高图片的安全性。同时,...

    简单的PHP图片上传程序

    ### 知识点详解:简单的PHP图片上传程序 本文将基于提供的“简单的PHP图片上传程序”的部分内容,深入探讨其中涉及的关键技术与实现方法。通过分析给出的两种上传方式,可以帮助读者更好地理解如何利用PHP处理文件...

    完美php图片上传压缩程序

    本文将详细讨论“完美PHP图片上传压缩程序”的核心知识点,包括PHP图片处理、图片上传和等比缩放。 首先,PHP提供了GD库和Imagick库等内置工具,用于处理和操作图像。GD库是最基础的图像处理库,支持JPEG、PNG、GIF...

    php上传图片程序源码 v1.0.rar

    php图片上传程序,您可以上传一个JPEG,GIF或PNG图片。(最大为2MB)你也可以上传一个ZIP名为upload.zip,含有多个图像。  安装说明:  上传即可使用,如果需要使用后台,要用phpmyadmin新建数据库并导入说明文件...

    PHP开源图片上传程序

    图片上传程序可能会处理大量图片,因此需要考虑性能优化,如使用缓存技术减少数据库访问,使用合适的文件系统和硬件配置以提升读写速度,以及对图片进行适当的压缩以节省存储空间。 8. **API集成**: 开源程序...

    PHP图片上传程序 CF Image Hosting Script 1.0.2v 汉化版.rar

    图片目录:u 如果修改掉后请修改config.php里面的 $filedir = "u"; 文件夹目录$imgurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/] ?)$/', '/', $_SERVER['PHP_SELF']).'u/'.$newname;里面的u/ 换成...

    PHP多图片上传程序源码

    本程序为PHP文件上传程序。 在某网站看到其程序,索要及买源码未果。通过开发人员工具及其他抓包程序进行相关文件获取。 经过自己写后台代码,不断调试完成。 在此共享此资源。程序的主要功能就是图片上传。可以一次...

    带进度条的php上传程序

    本教程将深入讲解如何创建一个带有进度条显示的PHP图片上传程序。 首先,我们需要了解PHP的文件上传基础知识。在PHP中,`$_FILES`全局数组用于存储上传文件的相关信息,如文件名、大小、类型等。当用户通过HTML表单...

    php免费上传图片站程序

    实现“完美上传”意味着程序不仅提供了基础的上传功能,还可能包含了一些优化特性,如错误处理、文件大小限制、文件类型检查、图片预览、缩略图生成、文件重命名等,以确保用户能顺畅地完成图片上传过程,并且服务器...

    PHP多图片上传程序开源源码v2.4.3

    【PHP多图片上传程序开源源码v2.4.3】是一个用于网站开发的PHP程序,主要用于实现用户在网站上批量上传图片的功能。这个开源项目提供了丰富的功能和灵活性,允许开发者自定义上传策略,比如限制文件类型、大小,以及...

    图片上传程序漠岚修改版 1.01.rar

    《图片上传程序漠岚修改版 1.01》是一个基于PHP开发的图像管理软件,专为优化图片上传流程而设计。此版本1.01是开发者漠岚针对原程序进行改进后的成果,旨在提高用户体验并增强系统稳定性。在这款程序中,用户可以...

    PHP+jQuery制作的图片上传裁剪程序源码

    【PHP+jQuery制作的图片上传裁剪程序源码】是一个基于Web的图像处理应用,它结合了PHP服务器端脚本语言和jQuery客户端JavaScript库,为用户提供了一种方便、高效的图片上传和裁剪功能。该程序在网页上允许用户选择...

    PHP 图片上传的小程序

    综上所述,PHP图片上传小程序涉及到HTML表单、PHP文件处理、文件验证、文件移动以及安全措施等多个方面。通过这个小程序,开发者可以学习到如何构建一个实用且安全的文件上传功能,这在许多Web应用中都是非常基础且...

Global site tag (gtag.js) - Google Analytics