使用表单中input type=file 上传文件
html
<form action="chuli.php" method="post" enctype="multipart/form-data"> <input type="file" name="upfile" id="upfile" /> <input type="submit" /> </form>
php
echo '<pre><meta charset="UTF-8">'; //输出所有传值内容 var_dump($_FILES['upfile']); //将每一项赋值 //文件名 $name = $_FILES['upfile']['name']; //文件类型 $type = $_FILES['upfile']['type']; //临时路径 $tmp_name = $_FILES['upfile']['tmp_name']; //错误代码 $error = $_FILES['upfile']['error']; //文件大小 $size = $_FILES['upfile']['size']; //如果文件名不为空则向下判断 if(!empty($name)){ //如果错误等于0 则没有错误,往下判断 if($error == 0){ //文件类型为图片时 if($type == 'image/jpeg'){ //文件大小小于100000b if($size <=100000){ //如果不存在文件夹upfile if(!is_dir("upfile")){ //创建文件夹upfile mkdir("upfile"); } //定义时间戳 $time = time(); //文件名设置为 $path = "upfile".$time.$name; //如果文件移动成功 if(move_uploaded_file($tmp_name,$path)){ echo '上传成功'; }else{ echo'上传失败'; } //否则则输出文件过大 }else{ echo'文件过大'; } //若不是图片则输出格式不对 }else{ echo'文件格式不对'; } //错误代号,输出各种错误意思。 }else{ switch($error){ case '1': echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值'; break; case '2': echo '传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。'; break; case '3': echo '文件只有部分被上传'; break; case '4': echo '没有文件被上传'; break; } } //文件名为空,则输出文件为空 }else{ echo '文件为空'; }
文件传输的内容
name 为文件名,
type 为文件类型
tmp_name 为文件临时路径
error 为错误代码
size 为文件大小单位为b
错误类型如下:
0 :没有错误
1:上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值
2:传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
3:文件只有部分被上传
4:没有文件被上传
其他:
is_dir() 函数检查指定的文件是否是一个目录。
mkdir() 函数创建目录。
move_uploaded_file(file,path) 函数将上传的文件移动到新位置。 file为文件 path为位置