上传下载/目录/时间

上传下载函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
php.ini上传文件配置项
• file_uploads = On /Off 是否允许⽂件上传
• upload_max_filesize = 2M 上传的⽂件的最⼤⼤⼩
• post_max_size = 8M POST数据所允许的最⼤⼤⼩
• upload_tmp_dir 上传⽂件放置的临时⽬录

多文件上传处理:
⽂件上传错误信息
• 0 没有错误发⽣,⽂件上传成功
• 1 ⼤⼩超过了 php.ini 中 upload_max_filesize 限制值
• 2 ⼤⼩超过 HTML 表单中 MAX_FILE_SIZE 选项指定的值
• 3 ⽂件只有部分被上传。
• 4 没有⽂件被上传
例子——
<form action="82.php" method="post" enctype="multipart/form-data">
⽂件1:<input type="file" name = "upfile[]"/><br/>
⽂件2:<input type="file" name = "upfile[]"><br/>
<input type="submit" value="上传⽂件"/>
</form>
注:设置name属性为数组格式,实现多⽂件上传处理

超全局数组:
$_FILES(超级全局数组)
• $_FILES['userfile']['name'] 客户端⽂件系统的⽂件名称
• $_FILES['userfile']['type'] 客户端传递的⽂件的类型
• $_FILES['userfile']['size'] ⽂件的字节的⼤⼩
• $_FILES['userfile']['tmp_name'] 服务器存储的临时⽂件
• $_FILES['userfile']['error'] ⽂件上传的错误代码

文档类型:
图⽚⽂件 image/gif,image/jpg,image/jpeg,image/png
纯⽂本和HTML text/txt,text/plain,text/html
⼆进制⽂件 application/octet-stream
⾳频格式 audio/basic
视频格式 video/mpeg

函数:
is_uploaded_file
• bool is_uploaded_file ( string $filename )
判断⽂件是否是通过 HTTP POST 上传的合法上传⽂件
move_uploaded_file
• bool move_uploaded_file ( string $filename , string $destination )
将上传的⽂件移动到新位置

文件下载方式:未搞清楚
$file=”houdunwang.jpg";
header(“Content-type:application/octet-stream”);//⼆进制⽂件
$fileName = basename($file);//获得⽂件名
header(“Content-Disposition:attachment;filename={$fileName}”);//下载窗⼝中显
示的⽂件名
header(“Accept-ranges:bytes”);//⽂件尺⼨单位
header(“Accept-length:”.filesize($file));//⽂件⼤⼩
readfile($file);//读出⽂件内容
目录操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
float disk_total_space ( string $directory )
给出⼀个包含有⼀个⽬录的字符串,本函数将根据相应的⽂件系统或磁盘
分区返回所有的字节数。
float disk_free_space ( string $directory )
给出⼀个包含有⼀个⽬录的字符串,本函数将根据相应的⽂件系统或磁盘
分区返回可⽤的字节数
number pow ( number $base , number $exp )
返回 base 的 exp 次⽅的幂。如果可能,本函数会返回 integer
例子:
$total = disk_total_space("d:");
$unit = $total>pow(1024,3)?array(3,"G"):($total>pow(1024,2)?
array(2,"MB"):array(1,"KB"));
echo round($total/pow(1024,$unit[0]),1).$unit[1];

目录操作:
bool is_writable ( string $filename )
判断给定的⽬录或⽂件是否可写
bool is_readable ( string $filename )
⽂件或⽬录存在并且可读则返回 TRUE
string basename ( string $path [, string $suffix ] )
给出⼀个包含有指向⼀个⽂件的全路径的字符串,本函数返回基本的
⽂件名。如果⽂件名是以 suffix 结束的,那这⼀部分也会被去掉。
string dirname ( string $path )
给出⼀个包含有指向⼀个⽂件的全路径的字符串,本函数返回去掉⽂
件名后的⽬录名。
bool file_exists ( string $filename )
如果由 filename 指定的⽂件或⽬录存在则返回 TRUE,否则返回
FALSE
bool is_dir ( string $filename )
判断给定⽂件名是否是⼀个⽬录
如果⽂件名存在并且为⽬录则返回 TRUE。如果 filename 是⼀个相对
路径,则按照当前⼯作⽬录检查其相对路径。
bool mkdir ( string $pathname [, int $mode [, bool $recursive [,
resource $context ]]] )
第1个参数指定⽬录名,第2个参数⽬录权限,第3个参数为TRUE则递
归创建
bool rmdir ( string $dirname )
尝试删除 dirname 所指定的⽬录。 该⽬录必须是空的,⽽且要有相
应的权限。
bool rename ( string $oldname , string $newname [, resource
$context ] )
尝试把 oldname 重命名为 newname,成功时返回 TRUE, 或者在失
败时返回 FALSE.
bool copy ( string $source , string $dest )
拷⻉⽂件
array glob ( string $pattern [, int $flags ] )
glob() 函数依照 libc glob() 函数使⽤的规则寻找所有与 pattern 匹配
的⽂件路径,类似于⼀般 shells 所⽤的规则⼀样。不进⾏缩写扩展
或参数替代。
例如:
function mkdir_d($path){
$info = explode('/',$path);
$tmp='';
foreach($info as $a){
$tmp=$tmp.$a.'/';
is_dir($tmp) or mkdir($tmp);
}
}

文件操作:
bool unlink ( string $filename )删除⽂件
时间处理函数:
1
2
3
4
5
6
7
8
9
10
11
12
PHP.ini配置
• 更改date.timezone = PRC
脚本中修改
• date_default_timezone_get()取得当前使⽤时区
• date_default_timezone_set()设定当前使⽤时区

date ( string $format [, int $timestamp ] ) 格式化⼀个本地时间/⽇期
time ( void ) 返回当前的 Unix 时间戳
microtime ([ bool $get_as_float ] )
返回当前 Unix 时间戳和微秒数,如果给出了 get_as_float 值为TRUE,将返回⼀个浮点数
strtotime ( string $time) 将任何英⽂⽂本的⽇期时间描述解析为 Unix 时间戳
getdate ([ int $timestamp ] ) 取得⽇期/时间信息