一、文件的上传
1、客户端设置:
enctype=multipart/form-data; method=post
(2)、form表单中设置一个hidden类型的input框,其中name的值为max_file_size的隐藏值
2、服务器端设置:
(1)、$_files多维数组:用于存储各种上传文件有关的信息
(2)、文件上传与php配置文件的设置,如以下php.ini文件中的一些指令
指令默认值功能描述
file_uploadson确定服务器上的php脚本是否可以接受http文件上传
memory_limit8m设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存
upload_max_file2m限制php处理上传文件大小的最大值,此值必须小于post_max_size值
post_max_size8m限制通过post方法可以接受信息的最大值
upload_tmp_dirnull上传文件的临时路径,可以是一个绝对路径
file
file:
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类型文件。
filephp.zip文件下载
三、文件函数库
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)