文件上传相关问题

来源:互联网 发布:软件项目售后服务计划 编辑:程序博客网 时间:2024/06/07 12:54

文件上传相关问题

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类型

    这里写图片描述

原创粉丝点击