这是一个表单的时代。。。
我们在浏览器中编辑自己的信息,会遇到上传头像;在文库中,我们会上传文档......到处存在“上传”这个词。
php是最好的语言(其他语言的程序猿们不要打我...)。php在处理交互方面有天然的优势,自然有强大的函数来处理上传文件。
和提交一般的数据一样,上传文件也需要表单。下面建立一个特殊的表单来上传文件。
<span style="color: #008080;">1</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">form </span><span style="color: #ff0000;">enctype</span><span style="color: #0000ff;">="multipart/form-data"</span><span style="color: #ff0000;"> action</span><span style="color: #0000ff;">="upload_file.php"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="upload_form"</span><span style="color: #ff0000;"> method</span><span style="color: #0000ff;">="post"</span><span style="color: #0000ff;">></span> <span style="color: #008080;">2</span> <span style="color: #008000;"><!--</span><span style="color: #008000;">MAX_FILE_SIZE必须在所有的input之前,以后要是想用上传表单,可以在form之后就写隐藏的input</span><span style="color: #008000;">--></span> <span style="color: #008080;">3</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="hidden"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="MAX_FILE_SIZE"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="30000"</span><span style="color: #0000ff;">/></span> <span style="color: #008080;">4</span> <span style="color: #000000;"> 上传的文件: </span><span style="color: #008080;">5</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;">="userfile"</span><span style="color: #0000ff;">/></span> <span style="color: #008080;">6</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">hr</span><span style="color: #0000ff;">/></span> <span style="color: #008080;">7</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="submit"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="sub_button"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="上传文件的提交按钮"</span><span style="color: #0000ff;">/></span> <span style="color: #008080;">8</span> <span style="color: #008080;">9</span> <span style="color: #0000ff;"></</span><span style="color: #800000;">form</span><span style="color: #0000ff;">></span>
ok,我们分析一下这个代码段。
立即学习“PHP免费学习笔记(深入)”;
以上的enctype规定了数据在发送给服务器的时候采用什么编码格式。它有三个值:

MAX_FILE_SIZE隐藏字段(单位为字节)必须放在文件输入字段之前,其值为文件的最大尺寸。这是对浏览器的一个建议,php也会检查此项。不过在浏览器端可以绕过这个障碍,因此不要指望用它来阻挡大文件。但是文件最大值受php.ini中的post_max_size= (number)M的限制。但是最好还是加上这个项目,它可以避免用户在花时间等待上传大文件之后才发现大文件上传失败的麻烦。
在用户提交文件表单之后,服务器端就可以接受数据了。PHP中有全局变量$_FILES来处理文件,假设上传字段名称为userfile(可以在字段中随意更改)。
$_FILES['userfile']['name'] 客户端文件的原名称。
$_FILES['userfile']['type'] 文件的MIME类型,这个在PHP端并不检查,因此这个值还不一定有。
$_FILES['userfile']['size'] 上传的文件的大小(单位字节)。
$_FILES['userfile']['tmp_name'] 文件上传后在服务器端存储的临时文件名。
系统功能模块:商品管理:支持发布,修改,删除,上传图片订单管理:处理订单,允许删除未处理订单系统开发环境:服务器: apache_2.0.55-win32-x86-no_ssl脚本语言:php-4.4.2-win32 和 php5.2Zend Optimizer v3.3.0数据库: mysql-4.0.16-win数据库配置文件:Inc_Config.PHP请根据您的配置设置数据库。数据库文件:
0
$_FILES['userfile']['error'] 和该文件上传相关的错误代码。如果上传成功,值为0.
文件在上传后,默认存储到服务器默认临时目录中,在php.ini中的upload_tmp_dir设置为其他路径。
在这里还得说说一个move_uploaded_file()函数:

这个函数检查并确保由 file 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 newloc 指定的文件。
如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false。
如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告。
这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。
下面是一个php上传文件实例:
<span style="color: #008080;"> 1</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">b</span><span style="color: #0000ff;">></span>上传文件处理<span style="color: #0000ff;"></</span><span style="color: #800000;">b</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 2</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">hr</span><span style="color: #0000ff;">/></span>
<span style="color: #008080;"> 3</span> <span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">php
</span><span style="color: #008080;"> 4</span> <span style="color: #ff00ff;">if (isset($_FILES['userfile'])) {
</span><span style="color: #008080;"> 5</span> <span style="color: #ff00ff;"> $uploaddir = 'upload/';
</span><span style="color: #008080;"> 6</span> <span style="color: #ff00ff;"> $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
</span><span style="color: #008080;"> 7</span> <span style="color: #ff00ff;"> echo '<pre class="brush:php;toolbar:false;">';
</span><span style="color: #008080;"> 8</span> <span style="color: #ff00ff;"> if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
</span><span style="color: #008080;"> 9</span> <span style="color: #ff00ff;"> echo '上传文件成功'.'<br>';
</span><span style="color: #008080;">10</span> <span style="color: #ff00ff;"> } else {
</span><span style="color: #008080;">11</span> <span style="color: #ff00ff;"> echo '上传文件失败'.'<br>';
</span><span style="color: #008080;">12</span> <span style="color: #ff00ff;"> }
</span><span style="color: #008080;">13</span> <span style="color: #ff00ff;"> echo '这是上传文件的一些信息:' . '<br>';
</span><span style="color: #008080;">14</span> <span style="color: #ff00ff;"> print_r($_FILES);
</span><span style="color: #008080;">15</span> <span style="color: #ff00ff;"> echo '<pre class="brush:php;toolbar:false;">';
</span><span style="color: #008080;">16</span> <span style="color: #ff00ff;"> die();
</span><span style="color: #008080;">17</span> <span style="color: #ff00ff;">}
</span><span style="color: #008080;">18</span>
<span style="color: #008080;">19</span> <span style="color: #0000ff;">?></span>
<span style="color: #008080;">20</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">b</span><span style="color: #0000ff;">></span>上传表单<span style="color: #0000ff;"></</span><span style="color: #800000;">b</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">21</span> <span style="color: #008000;"><!--</span><span style="color: #008000;">表单中的enctype属,必须和以下定义保持一致</span><span style="color: #008000;">--></span>
<span style="color: #008080;">22</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">form </span><span style="color: #ff0000;">enctype</span><span style="color: #0000ff;">="multipart/form-data"</span><span style="color: #ff0000;"> action</span><span style="color: #0000ff;">="upload_file.php"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="upload_form"</span><span style="color: #ff0000;"> method</span><span style="color: #0000ff;">="post"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">23</span> <span style="color: #008000;"><!--</span><span style="color: #008000;">MAX_FILE_SIZE必须在所有的input之前,以后要是想用上传表单,可以在form之后就写隐藏的input</span><span style="color: #008000;">--></span>
<span style="color: #008080;">24</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="hidden"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="MAX_FILE_SIZE"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="30000"</span><span style="color: #0000ff;">/></span>
<span style="color: #008080;">25</span> <span style="color: #000000;"> 上传的文件:
</span><span style="color: #008080;">26</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;">="userfile"</span><span style="color: #0000ff;">/></span>
<span style="color: #008080;">27</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">hr</span><span style="color: #0000ff;">/></span>
<span style="color: #008080;">28</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="submit"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="sub_button"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="上传文件的提交按钮"</span><span style="color: #0000ff;">/></span>
<span style="color: #008080;">29</span> <span style="color: #0000ff;"></</span><span style="color: #800000;">form</span><span style="color: #0000ff;">><br /></span> 
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
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号