• 文件上传相关问题


    文件上传相关问题

    1.文件扩展名的简单获取

    string strrchr(string $haystack,mixed $needle)

    ​ 在参数haystack中查找参数needle,找到后,返回之后的字符串。

    这里写图片描述

    2.避免文件名重复

    ​ 对于同一网站的保存路径,不同用户上传的文件可能重名,为避免同名文件相互覆盖,需给文件重命名,使用当前日期时间及随机数,拼接文件扩展名来生成。

    这里写图片描述

    3.大小限定

    ​ 临时文件单位为字节,比较时需转换单位。

    这里写图片描述

    4.文件类型限定(MIME类型)

    ​ 网站支持的文件类型一般是固定的,需要判断上传文件的类型。由于文件本身的扩展名可以修改,修改文件的扩展名后,上传之后类型也发送改变。不能通过上传之后的扩展名来判断文件类型,需判断MIME类型。MIME是描述消息内容类型的因特网标准。

    1. 在php.ini开启php_fileinfo.dll扩展,保存重启Apache

      这里写图片描述

    2. 打开fileinfo资源

      finfo_open(FILEINFO_MIME_TYPE);

      该函数执行成功返回资源型,失败返回false

      这里写图片描述

    3. 读取上传文件的MIME类型,返回MIME类型字符串

      finfo_file(文件资源,临时文件名);

      这里写图片描述

    4. 判断上传文件MIME类型是否是网站支持的

      bool in_array(mixed $needle,array $haystack)

      使用in_array函数判断,下图中参数mime为上传文件的MIME类型,参数mimeArr为网站支持的MIME类型

      这里写图片描述

  • 相关阅读:
    表删除 准备
    爱可生技术文档
    Bran的内核开发指南_中文版
    LINUX 内核内存管理
    Linux Container测试之block IO
    【实时文件同步】rsync+inotify-tools的安装与配置
    openlayer3 加载geoserver发布的WFS服务
    Geoserver跨域请求设置
    Bitmap 图片格式并用 C++ 读写 Bitmap
    C++中的对象初始化
  • 原文地址:https://www.cnblogs.com/Jianxq12/p/7639410.html
Copyright © 2020-2023  润新知