• 文件上传用到的函数 20150205


    header('content-type:text/html;charset=utf-8');

    move_uploaded_file(file,newloc)  :若成功则返回true  否则false。

    copy(file,newloc)  : 若成功则返回true ,否则false。

    strtolower(string)  :把字符串转换为小写。

    end(array)  : 返回数组最后一个元素。 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)。

    explode("分隔符","字符串")  把字符串分隔为数组。

    pathinfo(path,options) :以数组的形式返回路径信息。options可能的值:

    可能的值:

    • PATHINFO_DIRNAME - 只返回 dirname
    • PATHINFO_BASENAME - 只返回 basename
    • PATHINFO_EXTENSION - 只返回 extension

    in_array(value,array)  :在数组中搜索给定的值。

    is_uploaded_file(file) 函数判断指定的文件是否是通过 HTTP POST 上传的。 如果是则返回true.

    microtime() 函数返回当前 Unix 时间戳和微秒数。

    uniqid(prefix,more_entropy) 函数基于以微秒计的当前时间,生成一个唯一的 ID。

    如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy 参数设置为 true,则是 23 个字符串长。

    如果 more_entropy 参数设置为 true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。

    md5(string,raw) 计算字符串的 MD5 散列。

    raw可选。规定十六进制或二进制输出格式:

    • TRUE - 原始 16 字符二进制格式
    • FALSE - 默认。32 字符十六进制数

    确保文件名唯一,防止同名文件覆盖:$name=md5(uniqid(microtime(true),true));

    file_exists() 函数检查文件或目录是否存在。如果指定的文件或目录存在则返回 true,否则返回 false。

    +++++++拓展开始+++++++++

    PHP的 file_exists = is_dir + is_file 它既可以判断文件是否存在,又可以判断目录是否存在。

    is_file 只判断文件是否存在;
    file_exists 判断文件是否存在或者是目录是否存在;
    is_dir 判断目录是否存在;

    查看手册,虽然这两个函数的结果都会被缓存,但是is_file却快了N倍。
    还有一个值得注意的:
    文件存在的情况下,is_file比file_exists要快N倍;
    文件不存在的情况下,is_file比file_exists要慢;
    结论是,file_exits函数并不会因为该文件是否真的存在而影响速度,但是is_file影响就大了。

     +++++++++拓展结束++++++++++++

     mkdir(path,mode,recursive,context) 函数创建目录。若成功,则返回 true,否则返回 false。

    参数描述
    path 必需。规定要创建的目录的名称。
    mode 必需。规定权限。默认是 0777。
    recursive 必需。规定是否设置递归模式。
    context 必需。规定文件句柄的环境。Context 是可修改流的行为的一套选项。

    chmod() 函数改变文件模式。如果成功则返回 TRUE,否则返回 FALSE。chmod(file,mode)

    参数描述
    file 必需。规定要检查的文件。
    mode

    可选。规定新的权限。

    mode 参数由 4 个数字组成:

    • 第一个数字永远是 0
    • 第二个数字规定所有者的权限
    • 第二个数字规定所有者所属的用户组的权限
    • 第四个数字规定其他所有人的权限

    可能的值(如需设置多个权限,请对下面的数字进行总计):

    • 1 - 执行权限
    • 2 - 写权限
    • 4 - 读权限

    文件上传:

    tmp是临时文件

    临时文件一般是以隐藏的形式出现,当文件完成时,自动消失。

    服务器端配置:

    File_uploads=On   支持HTTP上传。

    Upload_tmp_dir  临时文件保存目录。

    upload_max_filesize=2M 允许上传文件的最大值

    max_file_uploads=20  允许一次上传文件的最大数。

    Post_max_size=8M   post方式发送数据的最大值。

     

     

    Max_execution_time=-1 设置了脚本被解析器终止之前允许的最大执行时间

    单位为妙,防止程序员写的不好而占尽服务器资源。

    Max_input_time=60  脚本解析输入数据允许的最大时间,单位秒。

    Max_input_nesting_level=64 设置输入变量的嵌套深度。

    Memory_limit=128M  最大单线程的独立内存使用量。也就是一个Web请求,给予线程最大的内存使用量的定义。

     

    错误信息说明:

     

    UPLOAD_ERR_OK:值为0,表示没有错误发生,文件长传成功

     

    UPLOAD_ERR_INI_SIZE:值为1,表示上传文件超过了php.iniupload_max_filesize选项限制的值。

     

    UPLOAD_ERR_FORM_SIZE:值为2,表示上传文件的大小超过了HTML表单中max_file_size选项指定的值。

     

    UPLOAD_ERR_PARTIAL:值为3,表示文件只有部分被上传。

     

    UPLOAD_ERR_NO_FILE:值为4,没有文件被上传

     

    UPLOAD_ERR_NO_TMP_DIR:值为6,找不到临时文件夹。

     

    UPLOAD_ERR_CANT_WRITE:值位7,文件写入失败。

     

    UPLOAD_ERR_EXTENSION:值为8,上传的文件被PHP扩展程序中断。

     

    PHP 编码设置:

    header("Content-type: text/html; charset=utf-8");

    Html编码设置:

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

     

     

    解决中文名字上传后乱码问题:

    $name = iconv('utf-8','gb2312',$file['name']); //利用Iconv函数对文件名进行重新编码

    该函数将$file[‘name’]字符串串由gb2312转换成utf-8的编码。

    未完 待续…………

  • 相关阅读:
    0045 Spring中使用DataSourceTransactionManager进行事务管理的xml配置
    0044 spring框架的applicationContext.xml的命名空间
    0042 MySQL学习笔记-入门--01
    0041 Java学习笔记-多线程-线程池、ForkJoinPool、ThreadLocal
    0040 Java学习笔记-多线程-线程run()方法中的异常
    0039 Java学习笔记-多线程-线程控制、线程组
    ThinkPHP5.0 实现 app微信支付功能
    Thinkphp5.0分页和跳页
    php header函数导出excel表格
    php之微信公众号发送模板消息
  • 原文地址:https://www.cnblogs.com/perseverancevictory/p/4275174.html
Copyright © 2020-2023  润新知