四、文件的上传

    xiaoxiao2025-12-26  3

    1、客户端设置:

    (1)、在标签中将enctype和method两个属性指明相应的值。

     

    Enctype="multipart/form-data"; Method="POST"

    (2)、form表单中设置一个hidden类型的input框,其中name的值为MAX_FILE_SIZE的隐藏值

    2、服务器端设置:

    (1)、$_FILES多维数组:用于存储各种上传文件有关的信息

    (2)、文件上传与php配置文件的设置,如以下php.ini文件中的一些指令

    指令 默认值 功能描述

    file_uploads ON 确定服务器上的PHP脚本是否可以接受HTTP文件上传

    memory_limit 8M 设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存

    upload_max_file 2M 限制PHP处理上传文件大小的最大值,此值必须小于POST_MAX_SIZE值

    post_max_size 8M 限制通过POST方法可以接受信息的最大值

    upload_tmp_dir NULL 上传文件的临时路径,可以是一个绝对路径

     

       

     

    3、PHP的文件上传及资源指令

    file_uploads(boolean)

    是否开启HTTP POST文件上传功能

    max_execution_time(integer)

    PHP脚本最长执行时间

    memory_limit(integer) 单位M

    PHP脚本运行的最大内存

    upload_max_filesize(integer) 单位M

    PHP上传文件的最大尺寸

    upload_tmp_dir(string)

    上传文件存储的临时位置

    post_max_size(integer) 单位M

    HTTP POST数据的最大尺寸

    4、$_FILES数组

    $_FILES['userfile'][size]

    获取上传文件的字节数

    $_FILES['userfile']['type']

    获取上传文件的MIME类型,每种MIME类型都是由“/”分隔的主类型和子类型组成

    $_FILES['userfile']['error']

    获取上传文件的错误代码,0:无任何错误,文件上传成功;1:上传文件大小超出了PHP配置文件中upload_max_filesize选项限定的值;2:上传文件大小超出了HTML表单中MAX_FILE_SIZE指定的值;3:表示文件只被部分上传;4:表示没有上传任何文件。

    $_FILES['userfile']['name']

    获取上传文件的原始名称,包含扩展名

    $_FILES['userfile']['tmp_name']

    获取上传文件的临时位置名称,这是存储在临时目录中所指定的文件名。

    5、文件上传函数

    is_upload_file

    判断指定的文件是否是通过HTTP POST上传

    bool is_upload_file(string $filename)

    move_upload_file

    将上传文件移至新位置

    bool move_upload_file(string $filename, string $destination)

    注意:文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传文件移动到新位置,与copy()和move()相比,它能检测并确保第一个参数filename指定的文件是否是合法上传的文件。

    6、错误信息描述

    UPLOAD_ERR_OK{value=0}

    UPLOAD_ERR_INI_SIZE{value=1}

    UPLOAD_ERR_FORM_SIZE{value=2}

    UPLOAD_ERR_PARTIAL{value=3}

    UPLOAD_ERR_NO_FILE{value=4}

    UPLOAD_ERR_NO_TMP_DIR{value=6}

    UPLOAD_ERR_CANT_WRITE{value=7}

     

     

    二、文件下载

     

     

    简单文件下载只需要使用HTML的链接标记,并将属性href的URL值指定下载的文件即可。这种方法只能处理一些浏览器不能识别的MIME类型文件。

     

     

    为了提高安全性,不希望在a标签中给出文件链接,则必须向浏览器发送必要的头信息,我们可以使用如下代码。

     

    三、文件函数库

    touch

    设置文件的访问和修饰时间

    bool touch(string $filename[, int $time[, int $time]])

    copy

    复制文件

    bool copy(string $source, string $dest)

    注意:移动文件请使用rename函数

    file_put_contents

    将一个字符串写入文件

    int file_put_contents(string $filename, string $data[, int $flag[, resource $content]])

    file_get_contents

    将整个文件读到字符串

    string file_get_contents(string $filename[, bool user_include_path [, resource $content[, int $offset[, int $maxlen]]]])

     

    四、序列化与反序列化

    serialize

    序列化

    string serialize(mixed $value)

    注意:serialize()可处理除了resouce之外的任何类型。甚至可以serialize()那些包含了指向其自身引用的数组。

    unserialize

    反序列化

    mixed unserialize(string $str)

    ● date

    格式化一个本地时间/日期

    string date(string format[, int timestamp]);

    ● getdate

    取得日期/时间信息

    array getdate([int timestamp]);

     

    ● microtime

    返回当前Unix时间戳和微秒数

    mixed microtime([bool get_as_float]);

    ● date_default_timezone_set

    设置默认时区

    bool date_default_timezone_set(string timezone_identifier);

    ● date_default_timezone_get

    获取默认时区

    string date_default_timezone_get(void);

    三、字符函数库

    strlen

    获取字符串长度

    int strlen(string $str);

    strtolower

    字符串转换为小写

    string strtolower(string $str);

    strtoupper

    字符串转换为大写

    string strtoupper(string $str);

    ucfirst

    首字母大写

    string ucfirst(string $str);

    ucwords

    将每个单词的首字母转换为大写字母

    string ucwords(string $str);

    ltrim

    从字符串开始的位置删除空格或其他字符

    string ltrim(string $str [, string $charlist]);

    rtrim

    从字符串结束的位置删除空格或者其他字符

    string rtrim(string $str[, string $chirlist]);

    trim

    从字符串开始和结束的位置删除空格或者其他字符

    str_replace

    字符替换

    mixed str_ireplace(mixed $search, mixed $replace, mixed $subject, [int $count]);

    str_ireplace

     

    字符替换

    mixed str_ireplace(mixed $search, mixed $replace, mixed $subject, [int $count]);

    md5

     

    计算字符串的MD5哈希

    string md5(string $str[, bool $raw_output=false]);

    strpos

    返回一个字符在另一个字符第一次出现的位置

    int strpos(string haystack, mixed needle[, int offset]);

    最新回复(0)