php获取提交文件 (怎样用PHP获取提交文件?)
随着Web应用程序的不断发展,文件上传已经成为了现代Web应用程序中不可缺少的部分。PHP 7提供了许多内置的函数来处理请求文件。在这篇文章中,我们将介绍如何使用PHP获取提交的文件。
首先,我们需要在HTML表单中使用元素来允许用户上传文件。例如,我们可以在HTML表单中添加以下代码:
“`html
“`
当用户上传文件并提交表单时,我们需要在PHP脚本中使用$_FILES超全局变量来访问上传的文件。这个变量以文件名为键,对应一个包含文件详细信息的数组。这个数组包含以下元素:
- $_FILES[‘file’][‘name’]:上传文件的原始文件名。
- $_FILES[‘file’][‘type’]:上传文件的MIME类型。
- $FILES[‘file’][‘tmpname’]:上传文件的临时存储位置。
- $_FILES[‘file’][‘error’]:如果上传过程中发生错误,则包含一个错误代码。
- $_FILES[‘file’][‘size’]:上传文件的大小(字节为单位)。
使用上传文件的原始文件名,我们可以通过以下代码将文件保存到指定的目录中:
php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["image"]["name"]);
move_uploaded_file($_FILES["image"]["tmp_name"], $target_file);
echo "The file has been uploaded.";
在上面的例子中,我们首先指定了目标目录,然后将上传的文件从临时位置移动到目标目录。最后,我们向用户显示一个成功的消息。
如果上传过程中发生错误,我们可以使用$_FILES[‘file’][‘error’]来定位错误。常见的错误代码包括:
- UPLOADERROK (0):没有错误发生,文件上传成功。
- UPLOADERRINI_SIZE (1):上传的文件大小超出了php.ini中配置的大小限制。
- UPLOADERRFORM_SIZE (2):上传的文件大小超出了HTML表单中指定的最大大小限制。
- UPLOADERRPARTIAL (3):文件只上传了一部分。
- UPLOADERRNO_FILE (4):没有文件被上传。
- UPLOADERRNOTMPDIR (6):缺少临时文件夹。
- UPLOADERRCANT_WRITE (7):无法将文件写入磁盘。
最后,我们需要注意的是,PHP的文件上传功能需要在php.ini文件中启用。我们需要确保以下变量是正确的:
ini
file_uploads = On
upload_max_filesize = 2M # 上传文件大小的最大限制
post_max_size = 8M # POST数据大小的最大限制
upload_tmp_dir = /tmp # 上传临时目录
总之,使用PHP获取提交的文件非常简单。我们只需要使用$_FILES超全局变量,将上传的文件从临时位置移动到指定的目录即可。记得在php.ini文件中启用文件上传功能,并设置适当的大小限制。