【php增删改查实例】第二十三节 - PHP文件上传22. PHP文件上传

22. PHP文件上传

22.1 资源文件

将这三个东西拷贝项目的根目录。

拷贝完毕后,打开upload.html:

现在,我们在项目的根目录去编写一个upload.php。

PHP给我们提供了很多关于文件上传的预定义变量,比如,上传的文件名称,文件大小,文件的类型等。

以下的up_file 就是form表单中文件框的name

22.2 如何修改文件上传的大小限制

打开xampp的安装目录,在目录中搜索php.ini的配置文件。

打开php.ini , 搜索upload_max:

再搜索post_max:

接着,重启服务器。

22.3 更改文件大小的名称

    function getSize($fileSize){
        if($fileSize < 1024){
            $fileSize = $fileSize . "B";
        }else if($fileSize < 1024 * 1024){
            $fileSize = round($fileSize / 1024,2) . "KB";
        }else if($fileSize < 1024 * 1024 * 1024){
            $fileSize = round($fileSize / 1024 / 1024,2) . "MB";
        }else if($fileSize < 1024 * 1024 * 1024 * 1024){
            $fileSize = round($fileSize / 1024 / 1024 / 1024 , 2) . "GB";
        }

        return $fileSize;
    }

22.4 文件上传

在PHP中,文件上传的时候会默认上传到一个临时目录,上传完毕后,如果没有及时把上传的文件从临时目录拷贝到上传的文件夹,临时文件就会被删除。

所以,当文件上传成功以后,我们一定要及时地把临时拷贝到上传目录。

    $temp = $_FILES["up_file"]["tmp_name"];
    move_uploaded_file($temp,"upload/" . time() . "_" .  $_FILES["up_file"]["name"]);

    echo "上传成功!";

同时,为了解决同名文件的覆盖问题,我们最好给上传的文件名改一下名字,在文件名的前面添加一个时间戳即可。

如果上传的文件是一个图片,那么,在上传成功的页面中,把上传好的图片显示在页面上,让用户知道自己上传的是什么图片。

$des = "upload/" . time() . "_" .  $_FILES["up_file"]["name"];
    $temp = $_FILES["up_file"]["tmp_name"];
    move_uploaded_file($temp,$des);

    echo "上传成功!<br>";
//先判断是不是图片?
    if(strstr($_FILES["up_file"]["type"], "image")){
        //如果是图片的话,就把上传好的图片显示在页面上
        echo "<image src='".$des."' width='360px' />";
    }

源码获取:https://www.jianshu.com/p/4977bd0073d5

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端大白专栏

关于上报错误最简单的实现方式--利用图片

1735
来自专栏木子昭的博客

最简单靠谱的vsftpd安装指南(Ubuntu16.04)

vsftp (very secure FTP daemon)意为非常安全的ftp进程 特点:小巧|免费 | 安全,是Linux下最受推崇的ftp服务 -...

3628
来自专栏LIN_ZONE

laravel初次学习总结及一些细节

刚开始一周多一点的时间先把laravel的开发文档看了一遍,,感觉刚开始接触时的感觉laravel的目录与thinkphp又不一样,它们的渲染模板的方式也不一样...

872
来自专栏较真的前端

PWA 入门: 写个非常简单的 PWA 页面

7495
来自专栏同步博客

自定义搭建PHP开发环境

  3、将安装包准备好。http://pan.baidu.com/s/1mhxEPkc

1831
来自专栏WebDeveloper

简单封装curl的get与post发送数据

3503
来自专栏DeveWork

WordPress 一键关闭/禁止页面评论功能

WordPress 中页面都是默认开启批量功能的,对于一些特殊的网站,可能需要禁止所有的页面的评论功能;一个个去页面编辑页面去禁止固然可以,但是页面一多的话那就...

2036
来自专栏有困难要上,没有困难创造困难也要上!

Webpack2入门

3077
来自专栏运维小白

10.5 nload 命令

监控系统状态 nload命令,监控网卡流量 yum install -y epel-release yum install -y nload 安装nloa...

2215
来自专栏Python疯子

iOS 之多个 button 的单选与多选

下面是实现的代码: 首先创建10个button(一个一个写太麻烦了,个人认为还是用一个 for 循环来创建比较好)

1041

扫码关注云+社区

领取腾讯云代金券