文件上传分为两个步骤
1,客户端用户上传;
a)需要一个表单域,用来注入要上传的文件,
<span style="color: #0000ff;"><</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="file"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="file"</span> <span style="color: #0000ff;">/></span>
b)用户选择所需要上传的文件
c)用户点击,将文件发送给服务器
2,服务器接收
form表单使用POST提交方式。
*注意:GET,POST不能提交二进制文件,但是POST提交增加一个属性便可以完成。
<span style="color: #0000ff;"><</span><span style="color: #800000;">form </span><span style="color: #ff0000;">action</span><span style="color: #0000ff;">="file.php"</span><span style="color: #ff0000;"> method</span><span style="color: #0000ff;">="POST"</span><span style="color: #ff0000;"> enctype</span><span style="color: #0000ff;">="multipart/form-data"</span><span style="color: #0000ff;">></span>
html部分: DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件上传title> head> <body> <span style="color: #0000ff;"><</span><span style="color: #800000;">form </span><span style="color: #ff0000;">action</span><span style="color: #0000ff;">="file.php"</span><span style="color: #ff0000;"> method</span><span style="color: #0000ff;">="POST"</span><span style="color: #ff0000;"> enctype</span><span style="color: #0000ff;">="multipart/form-data"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="file"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="file"</span> <span style="color: #0000ff;">/></span> <input type="submit" value="提交"/> form> body>
var_dump($_FILES) 时发现得到的是一个数组
<span style="color: #0000ff;">array</span>
'file' =>
<span style="color: #0000ff;">array</span>
'name' => <span style="color: #0000ff;">string</span> '4.jpg' (length=5<span style="color: #000000;">)
</span>'type' => <span style="color: #0000ff;">string</span> 'image/jpeg' (length=10<span style="color: #000000;">)
</span>'tmp_name' => <span style="color: #0000ff;">string</span> 'F:\wamp\tmp\php904D.tmp' (length=23<span style="color: #000000;">)
</span>'error' => int 0
'size' => int 273665
a)根据二维数组找到error点;
<span style="color: #0000ff;">switch</span>(<span style="color: #800080;">$_FILES</span>['file']['error'<span style="color: #000000;">]){
</span><span style="color: #0000ff;">case</span> '0':
<span style="color: #0000ff;">echo</span> "上传成功"<span style="color: #000000;">;
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">case</span> '1':
<span style="color: #0000ff;">case</span> '2':
<span style="color: #008080;">header</span>('Refresh:3;url=file.html'<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> "文件大小超过服务器限制"<span style="color: #000000;">;
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">case</span> '3':
<span style="color: #008080;">header</span>('Refresh:3;url=file.html'<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> "文件只有部分上传成功"<span style="color: #000000;">;
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">case</span> '4':
<span style="color: #008080;">header</span>('Refresh:3;url=file.html'<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> "未选中文件,请重新选择文件并提交"<span style="color: #000000;">;
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">default</span>:
<span style="color: #0000ff;">echo</span> "文件上传失败"<span style="color: #000000;">;
}</span>
b)文件上传成功后,放到了指定的临时目录中,此时需要更改到期待的文件中,
php有一个函数可以完成,move_uploaded_file()
eg:
<span style="color: #008080;">move_uploaded_file</span>(<span style="color: #800080;">$_FILES</span>['file']['tmp_name'], './cy1/' . <span style="color: #800080;">$_FILES</span>['file']['name']);
注:tmp_name,文件上传到服务器的临时目录,
'name',文件在客户端本地的文件名字。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号