PHP闲来无事,小打小闹

文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php 
if (!file_exists('a/b/c/d/')) {
mkdir('a/b/c/d',0777,true);
echo "文件目录创建成功";
}elseif(!file_exists('a/b/c/d/aaa.txt')){
$fp=fopen('a/b/c/d/aaa.txt','w');
fwrite($fp, '闲的无聊');
echo "文件内容创建成功";
}elseif(file_exists('a/b/c/d/aaa.txt')){
unlink('a/b/c/d/aaa.txt');
echo "文件内容删除成功",'<br>';
rmdir('a/b/c/d');
rmdir('a/b/c');
rmdir('a/b');
rmdir('a');
echo "文件目录删除成功";
}
?>

上传下载

核心

  1. 设计表单时注意属性:enctype="multipart/form-data";
  2. 文件接收时:print_r ($_FILES['file']);返回数组文件内容
  3. 判断文件是否上传成功:is_uploaded_file($_FILES['file']['tmp_name'])
  4. 定义上传路径与保存路径
  5. // 把文件转存到希望的文件目录
    $upload_file = $_FILES['file']['tmp_name'];
  6. file_exists判断转移文件夹存在与否,通过mkdir新建转移文件夹
  7. // 通过time()rand()获取时间戳对文件重命名避免上传文件的重复而被覆盖
    $move_file = $_SERVER['DOCUMENT_ROOT']."upload/".time().rand(0,100).$_FILES['file']['name'];
  8. 文件路径转移函数
    move_uploaded_file($upload_file,$move_file)
  9. 中文转码:string iconv ( string $in_charset , string $out_charset , string $str );

前台页面

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
<form action="control.php" method="post" enctype="multipart/form-data">
<table>
<tr><td colspan="2" ><font style="font-size: 20px;">上传文件</font></td></tr>
<tr>
<td>文件分类</td>
<td>
<select name="resource">
<option value='pic'>图片</option>
<option value='mus'>音乐</option>
<option value='vio'>视频</option>
<option value='doc'>文档</option>
<option value='txt'>文件</option>
</select>
<span style='font-size:6px;color:#ff9955;'>暂时只支持上传“png”与“jpg”格式的图片资源</span>
</td>
</tr>
<tr>
<td>文件介绍</td>
<td><textarea cols="30" rows="10" name="describe"></textarea></td>
</tr>
<tr>
<td>上传文件</td>
<td><input type="file" name="file"></td>
</tr>
<tr>
<td>点击提交</td>
<td><input type="submit" name="btn"></td>
</tr>
</table>
</form>

控制器

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
62
63
64
<?php 
require $_SERVER['DOCUMENT_ROOT'].'inc/conn.php';
// 判断是否提交数据
if ($_POST['btn']) {
// 接收提交内容
$resource = $_POST['resource'];
$describe = $_POST['describe'];
// 显示FILES全局变量的信息
// echo "<pre>";
// print_r ($_FILES['file']);
// echo "</pre>";

//判断文件大小,限制在10M以内
if ($_FILES['file']['size']>10*1024*1024) {
echo "上传文件太大,请重新上传,页面正在跳转";
header('refresh:10;url=upload.php');
exit();
}

//判断上传文件格式是否满足条件(暂未完善暂时只支持png与jpg格式图片)
$type = $_FILES['file']['type'];
//echo $type;//通过该输出确认文件格式;
if ($type!='image/jpeg'&&$type!='image/png') {
echo "上传格式不对,请重新上传,页面正在跳转";
header('refresh:3;url=upload.php');
exit();
}
// 判断文件是否上传成功$_FILES['file']['tmp_name']代表临时文件
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
// 把文件转存到希望的文件目录
$upload_file = $_FILES['file']['tmp_name'];
//根据分类创建对应文件夹(应用于根据用户创建对应文件夹)
$user_path = $_SERVER['DOCUMENT_ROOT']."upload/".$resource;
if (!file_exists($user_path)) {
mkdir($user_path,0777,true);
}
// 通过time()与rand()获取时间戳对文件重命名避免上传文件的重复而被覆盖
$move_file = $user_path."/".time().rand(0,100).$_FILES['file']['name'];
// 测试路径地址正确与否
// echo $upload_file,'<br>';
// echo $move_file;
// 中文出错时转码函数iconv ('utf-8','gb2312',$move_file);
if (move_uploaded_file($upload_file,$move_file)) {
$sql = "insert into resource values(null,'$resource','$describe','$move_file')";
if (mysql_query($sql)) {
echo '文件上传成功,正在跳转到下载页面...';
header('refresh:3;url=download.php');
}else{
mysql_query($sql) or die(mysql_error());
}

}else{
echo "文件上传失败,请上传文件...";
header('refresh:3;url=upload.php');
}
}else{
echo "没有文件上传,请上传文件...";
header('refresh:3;url=upload.php');
}
}else{
echo "未进行文件上传,正在跳转到上传页面...";
header('refresh:3;url=upload.php');
}
?>

显示页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
require $_SERVER['DOCUMENT_ROOT'].'/inc/conn.php';
$sql = "select * from resource";
$resource_content = mysql_query($sql);

header('content-type:image/png');
header('content-length:'.filesize($filename));
header('Content-Disposition: attachment; filename="1.png"');
readfile($filename);
while ($resource = mysql_fetch_assoc($resource_content)) {
echo '<h1>文件分类:'.$resource['resource'].'<hr>';
echo '文件简介:'.$resource['describe'].'<br>';
echo '下载地址:'.$resource['filename'].'<br><br>';
}
?>