php文件上传步骤
* 1 使用form的中的input上传
2 使用$_FILES获取上传文件的信息
* 3 上传文件 存放在 php.ini 中的 upload_tmp_dir 的这个参数设置的目录,如果没有设置存放在默认目录
* 4 移动临时文件到需要的地方
php文件上传的配置项(php.ini)
file_uploads 确定服务器上的php脚本是否可以接受HTTP文件上传
memory_limit 设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存
upload_max_filesize 限制php处理上传文件的最大值,此值必须小于post_max_size值
upload_tmp_dir 上传文件的临时路径
代码部分
pathinfo() 函数返回的信息是根据里面的参数字符串决定的与路径是否存在没有关系
$path_parts = pathinfo ( '/path/emptyextension.dd' ); var_dump ( $path_parts); 返回的信息如下:所填路径根本不存在
form 表单中的 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
enctype :常用的三种
<?php
header('Content-type:text/html');
//打印所有post参数
echo "<pre>";
print_r($_POST);
//打印上传的文件信息
print_r($_FILES);
echo "<pre>";
if (!empty($_FILES) && ($_FILES['myFile']['error']) == 0) {
if (is_uploaded_file($_FILES['myFile']['tmp_name'])) {
//打印路径信息
$fileInfo = pathinfo($_FILES['myFile']['name']);
$fileExtension = $fileInfo['extension'];
$fileName = uniqid(rand(1000, 9999) . '_');
$filePath = './upload/' . $fileName . '.' . $fileExtension;
//上传的临时文件移动到指定文件
if (move_uploaded_file($_FILES['myFile']['tmp_name'], $filePath)) {
echo "****上传文件成功****";
} else {
echo "上传失败";
}
} else {
exit("没有获取到文件");
}
}
?>
<html>
<head>
<title>文件上传</title>
</head>
<style>
ul li {
margin: 20px 10px;
list-style-type: none;
}
</style>
<body>
//form中的action为空时表示上传到当前页面路由
<form method="post" action="" enctype="multipart/form-data">
<ul>
<li><input type="file" name="myFile"></li>
<li><input type="text" name="name"></li>
<li><input type="submit" value="上传" name="submit"></li>
</ul>
</form>
</body>
</html>
上传前的效果