文章目录
1、html标签需要做的上传设置
2、php处理文件部分信息
3、上传文件的后续处理
1、
(1)form标签属性设置
<1>method设置为post
<2>enctype设置为multipart/form-data
<3>form表单中设置隐藏类型的input,其中name值设置为MAX_FILE_SIZE,VALUE值设置为需要限制的上传文件的大小(单位为字节)
2、
(1)与上传有关的php配置选项
<1>file_uploads 初始值 : on ;功能 : 确定php服务器的脚本是否可以接收http文件上传
<2>memory_ limit 初始值:8M ; 功能:设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存
<3>upload_max_filesize 初始值:2M ;功能:限制php处理上传文件的最大值 ,此值必须小于post_max_size值
<4>post_max_size 初始值:8M ; 功能:限制通过post方法可以接受的信息最大量
<5>upload_tmp_dir 默认路径:F:/wamp/tmp ;功能:上传文件存放的临时路径,可以是一个绝对路径,这个目录对于拥有此服务器进程用户必须是可写的
(2)$_FILES多维数组,用于存储各种与上传有关的信息
$_FILES[‘file’][ ‘name’ ] 客户端机器文件的原名称,包括扩展名
$_FILES[‘file’][ ‘size’ ] 已上传文件的大小,单位为字节
$_FILES[‘file’][ ‘tmp_name’ ] 文件上传之后,在服务器端储存的临时文件名
$_FILES[‘file’][ 'error ] 文件上传时产生的错误
0:表示没有发生任何错误,文件上传成功
1:表示上传文件的大小超出了在php配置文件中upload_max_filesize的值
2: 表示上传文件的大小超出了HTML表单中MAX_FILE_SIZE选项所指定的值
3:表示文件只被部分上传
4:表示没有上传任何文件
$_FILES[‘file’][ ‘type’ ] :获取客户端上传的MIME类型,MIME类型规定了各种文件格式的类型,每种MIME类型都是由/分隔的主类型和子类型组成
3、
(1)is_uploaded_file()判断指定的文件是否通过 HTTP POST上传的
(2)move_uploaded_file()文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传的文件移至新位置
总代码
<?php
header('Content-type:text/html;charset=utf-8');
if(isset($_post['submit'])){
if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
$arr=pathinfo($_FILES['myfile']['name']);
if(move_uploaded_file($_FILES['myfile'['tmp_name'],"uploads/'a'{$arr['extension']}"));
}else{
exit("可能有攻击,请你做合法的事情!");
}
var_dump($_FILES);
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>上传页面</title>
</head>
<body>
<form action="" method="post" entype="multipart/form-data">
<input type="file" name="myfile" />
<input type="submit" name="submit" value="开始上传" />
</form>
</body>
</html>
输出
注:为了防止文件被新文件覆盖,可以将a换成时间戳
代码为
$new=date('YmdGis').rand(1000-9999)
再把a换成{$new}即可