PHP 文件上传
PHP脚本可以与HTML表单一起使用,允许用户将文件上传到服务器。最初,文件被上传到临时目录,然后由PHP脚本重定位到目标位置。
在 phpinfo.php 页面中提供了临时目录的信息,用于文件上传的临时目录的名称为 upload_tmp_dir ,允许上传的最大文件大小为 upload_max_filesize 。这些参数存储在PHP配置文件 php.ini 中。
上传文件的过程如下:
- 用户打开包含HTML表单的页面,其中包含文本字段、浏览按钮和提交按钮。
-
用户点击浏览按钮,从本地计算机选择要上传的文件。
-
所选文件的完整路径显示在文本字段中,然后用户点击提交按钮。
-
所选文件被发送到服务器上的临时目录。
-
在表单的action属性中指定的PHP脚本作为表单处理程序,检查文件是否已到达,然后将文件复制到目标目录。
-
PHP脚本向用户确认操作成功。
通常在编写文件时,临时目录和最终位置都需要设置写入文件的权限。如果其中一个设置为只读,操作将失败。
上传的文件可以是文本文件、图像文件或任何文档。
创建上传表单
下面的HTML代码创建了一个上传表单。这个表单的方法属性设置为 post ,enctype属性设置为 multipart/form-data 。
它将产生以下结果−
创建一个上传脚本
有一个全局的PHP变量叫做 $_FILES 。这个变量是一个关联双维数组,保存了所有与上传文件相关的信息。所以,如果上传表单中的input元素的name属性的值为 file ,那么PHP会创建以下五个变量:
$_FILES['file']['tmp_name']
- 在Web服务器上的临时目录中的上传文件。-
$_FILES['file']['name']
- 上传文件的实际名称。 -
$_FILES['file']['size']
- 上传文件的字节大小。 -
$_FILES['file']['type']
- 上传文件的MIME类型。 -
$_FILES['file']['error']
- 与该文件上传相关的错误代码。
示例
下面的示例应该允许上传图片,并返回上传文件的相关信息。
它将产生以下结果 −