HTML中使用type = 'file'类型的表单可以向服务器上传文件;
上传文件的表单必须在form中定义enctyp = 'multipart/form-data';
HTML代码如下:
DOCTYPE html>
<html><head><meta charset&#61;"utf-8"><title>FileSubmit Document.title>head><body><form action&#61;"user.php" method&#61;"post" enctype&#61;"multipart/form-data" name&#61;"upvideo">上传文件&#xff1a;<input type&#61;"file" name&#61;"video" /><input type&#61;"submit" value&#61;"上传"/>form>form>body>
html>
PHP代码如下&#xff1a;
phpvar_dump($_POST);
var_dump($_FILES);if ($_FILES[&#39;video&#39;][&#39;error&#39;] > 0) {echo "Error:" .$_FILES[&#39;video&#39;][&#39;error&#39;]. "";
} else {print_r($_FILES[&#39;video&#39;]);if (is_uploaded_file($_FILES[&#39;video&#39;][&#39;tmp_name&#39;])) {$upfile &#61; $_FILES[&#39;video&#39;];// 获取数组里面的值$name &#61; $upfile[&#39;name&#39;]; // 上传文件的文件名$type &#61; $upfile[&#39;type&#39;]; // 上传文件的类型$size &#61; $upfile[&#39;size&#39;]; // 上传文件的大小$tmp_name &#61; $upfile[&#39;tmp_name&#39;]; //上传文件的临时存放路径// 移动上传的文件到指定目录move_uploaded_file($tmp_name, &#39;/Library/WebServer/Documents/book/&#39; . $name);}
}
注意&#xff1a;
使用print_r打印数据的时候发现第一个数组为空&#xff0c;这表明使用file类型表单提交数据时并不使用$_POST接受数据&#xff0c;而是使用全局变量$_FILES来接收&#xff1b;
· php默认上传文件的大小只有2MB&#xff1b;
例如要上传一个50MB的大文件&#xff0c;php.ini配置如下&#xff1a;
file_uploads &#61; On
upload_tmp_dir &#61; "/user/file"
upload_max_filesize &#61; 50M
post_max_size &#61; 100M
max_excution_time &#61; 600
max_input_time &#61; 600