PHP图片上传并重命名图片的功能实现原理

  通过表单上传图片是网站开发中经常需要的功能,并且为避免相同文件名上传覆盖掉之前的文件还需要将上传的图片重新命名。图片上传的方法有很多种,包括用框架或插件上传,但底层实现原理都是一样的,下面简单介绍一下原生PHP中图片上传并重命名的实现原理:

<?php
// PHP图片上传并重命名简单方法

// 获取上传文件
$file = $_FILES['file'];
// 获取上传文件名
$fileName = $file['name'];
// 反转文件名并以.符号分割文件名
$fileNameExp = explode('.',strrev($fileName));
// 反转文件名并转换为小写得到文件后缀
$fileEx = strtolower(strrev($fileNameExp[0]));
// 定义文件上传目录,date('Ymd/')为以当前日期年月日为命名的目录
$uploadPath = '../uploads/images/'.date('Ymd/');
// 以时间戳和随机数组合成新文件名包括后缀名
$fileNewName = time().rand(100,999).'.'.$fileEx;

// 判断文件是否通过文件表单上传
if(is_uploaded_file($file['tmp_name'])){
    // 判断当前日期命名的目录是否存在
    if(!is_dir($uploadPath)){
        // 如果不存在则创建目录
        mkdir($uploadPath,0777,true);
        // 移动文件到上传目录
        if(move_uploaded_file($file['tmp_name'],$uploadPath.$fileNewName)){
            // 组合成最终包括目录在内的文件完整路径
            $fileFinal = substr_replace($uploadPath,'',0,2).$fileNewName;
            echo "文件{$fileFinal}上传成功!";
        }else{
            echo '文件上传错误!';
            exit;
        }
    }else{
        // 移动文件到上传目录
        if(move_uploaded_file($file['tmp_name'],$uploadPath.$fileNewName)){
            // 组合成最终包括目录在内的文件完整路径
            $fileFinal = substr_replace($uploadPath,'',0,2).$fileNewName;
            echo "文件{$fileFinal}上传成功!";
        }else{
            echo '文件上传错误!';
            exit;
        }
    }
}else{
    echo '文件上传错误!';
    exit;
}

本站原创内容,如需转载请注明来源:https://www.liutonghui.com/66.html

上一篇 2014-07-27
下一篇 2014-08-02

评论列表(0条)

  • 暂时没有评论!

发表评论

captcha

相关推荐

  • 窃格瓦拉逆袭:周立齐的经历引发社会对价值观的思考

      周立齐,这个曾经因偷窃电动车电瓶而闻名一时的人,如今已成为互联网上的网红。他曾因为偷窃行为被网民称为&ldquo;窃格瓦拉&rdquo;。但是,这个曾经的罪犯在出狱后走上了创业的道路,甚至成为了一名企业家。   周立齐曾经因为多次盗窃电动车电瓶而被判刑。在狱中,他因为一句&ldquo;打工是不可能打工的,这辈子不可能打工。&rdquo;而走红,这句话甚至被做成了表情包,在网络上广为流传。出狱后,他并没有停下脚步,而是利用这波流量积......

    2023-03-27
    6340
  • 李铁落马救不了中国足球,敛财有道没有国家荣誉感

      李铁被抓事件可以说是引起广大球迷最近热衷讨论的话题,据了解,李铁是在大连参加某项活动时,被人直接用手铐铐走的,并且是最高级别的国家法务部门直接派人执行的,李铁落马可以说是非常严重的犯罪事件。   做为前国家队主教练,李铁为什么会被带走?这与其曾多次利用金钱和人脉操控比赛结果有直接关系。2019赛季中超联赛武汉卓尔与天津权健的两场比赛都有很大的问题,武汉卓尔在主场2:1击败天津权健的比赛中,当时的权健守门员张鹭发挥失常,就是被李......

    2022-12-04
    5292
  • PHP类的自动加载机制实现方法

      PHP的自动加载机制允许你在需要时自动加载所需的类文件,而无需手动包含或引入每个文件。PHP提供了 spl_autoload_register() 函数来实现自动加载机制。   以下是实现PHP类自动加载机制的步骤: &lt;?php // 自定义的自动加载函数 function my_autoloader($class) { include 'classes/' . $class . '.class.php'; } //......

    2019-03-14
    19060
  • PHP中的类与对象和继承

      在PHP中,类(Class)和对象(Object)是面向对象编程的核心概念。类是创建对象的蓝图或模板,而对象则是类的实例。通过使用类和对象,可以模拟现实世界中的情况,并封装相关的属性和方法。   下面是一个简单的示例,展示了如何在PHP中定义一个类和创建对象: class Car { // 属性 public $color; public $speed; // 方法 ......

    2018-05-28
    17050
  • 王冰冰不能结婚离婚吗?谁规定的?

      王冰冰是央视近年来力推的知名记者,她以初恋般的清纯可爱的外貌形象走红,被称为&ldquo;央视收视密码&rdquo;。走红后的王冰冰也被受邀参加了很多节目和活动,她本人的自媒体账号也收获了500万的粉丝。   不过,人红事非多,近日,就有人爆出了王冰冰大量的个人隐私内容,她早年英语四级成绩只有369分。考了两次才合格。爆料中还提到王冰冰其实早就结过婚了,并且现在属于离婚状态。还说王冰冰19岁就和男友同居,后来被甩了,嫁给了吉林......

    2022-01-24
    12582
  • ThinkPHP5框架整合plupload实现图片批量上传

      本文实例讲述了thinkPHP5框架整合plupload实现图片批量上传功能的方法。分享给大家供大家参考,具体如下:   在官网下载plupload https://www.plupload.com/   这里我们使用的是pluploadQueue   在HTML页面引入相应的css和js,然后根据示例代码修改为自己的代码 &lt;link rel="stylesheet" href="/assets/plupupload/css/......

    2018-01-05
    19130
  • 三星Note7爆炸事件:电子巨头的危机公关之痛

      三星公司的Note7手机在全球范围内引发了一场关于手机安全性的关注。这款手机在上市不久后,就不断有用户反映其电池存在过热和爆炸的问题。随着问题的扩散,三星公司不得不采取全球召回的措施,并最终在多重压力下退出中国市场。   2016年8月,三星发布旗舰手机Galaxy Note7,但不久后用户开始反映电池过热和爆炸问题。随着问题扩散,三星于9月2日全球召回Note7。在中国市场,由于未提供令消费者满意的解决方案,一些用户通过法律途径......

    2016-09-16
    13110
  • 王力宏出轨招嫖人设崩塌,4亿豪宅曝光,好一个家徒四壁

      王力宏和李靓蕾离婚的事最近闹得沸沸扬扬,二人在微博上互骂,都指责对方的错误。根据种种的证据表明,这件事不光是简简单单的离婚,王力宏出轨招嫖的丑闻也被扒了出来,也坐实了多年前很多人对他的人品的质疑,王力宏多年来伪装成的老好人形象算是彻底崩塌了。   王力宏到底有多渣?其实多年前就有人报料出来了,只不过都被他用公关手段摆平了,并且当时王力宏事业发展如日中天,很多人都不相信那些报料。事实上在李靓蕾还没有成年时,王力宏就与其发生关系了......

    2021-12-22
    13200