【笔记】PHP的文件上传

前言

PHP的文件上传学习笔记

文件上传

  • 当上一个页面发出的请求体中的Content-Type值为application/multipart时,使用$_FILES数组可以接收文件上传请求
  • 当接收到文件上传请求后,PHP会立即将文件保存在系统的缓存中,但是保存成功后会立即删除,所以如果需要将请求中的文件保存在系统,需要将缓存目录下的文件复制到系统的其他目录下
    • Windows的用户缓存文件在C:\Users\用户名\AppData\Local\Temp\

Windows

<key>:POST请求的参数名,也就是前端页面的文件上传按钮的name值

1
2
3
4
5
6
7
8
9
10
function upLoad() {
if (isset($_POST['<key>'])) {
// 定义缓存路径
$tmp_path = $_FILES['userUpFile']['tmp_name'];
// 定义保存后的路径
$copy_path = __DIR__.'\\'.$_FILES['userUpFile']['name'];
// 移动文件
move_uploaded_file($tmp_path, $copy_path);
}
}

Linux & MacOS

<key>:POST请求的参数名,也就是前端页面的文件上传按钮的name值

1
2
3
4
5
6
7
8
9
10
function upLoad() {
if (isset($_POST['<key>'])) {
// 定义缓存路径
$tmp_path = $_FILES['userUpFile']['tmp_name'];
// 定义保存后的路径
$copy_path = __DIR__.'/'.$_FILES['userUpFile']['name'];
// 移动文件
move_uploaded_file($tmp_path, $copy_path);
}
}

修改文件缓存的路径

  • 修改php.info第787行

<dir>:指定文件缓存的路径

1
upload_tmp_dir = <dir>

完成

参考文献

哔哩哔哩——千锋教育网络安全学院