📅  最后修改于: 2023-12-03 15:06:02.359000             🧑  作者: Mango
wp_handle_upload()
函数是 WordPress 在处理文件上传时使用的函数之一。此函数将上传的文件存储在本地服务器上,并返回文件的相关信息。
wp_handle_upload( string $file, array $overrides = array(), int $time = null )
$file
(必填) - 文件上传表单字段的名称(例如,用户在表单上选择的文件输入字段的名称)。这通常是通过 HTML <input>
元素的 name
属性指定的。$overrides
(可选) - 一个关联数组,其中包含一些指示如何处理上传文件的选项。默认情况下,它是一个空数组。$time
(可选) - 上传文件的 Unix 时间戳。默认情况下,它为 null
, time()
函数将用于生成时间戳。wp_handle_upload()
函数会返回一个关联数组,其中包括以下键:
file
- 上传的文件的本地路径和文件名。url
- 上传文件的公共 URL。type
- 上传文件的 MIME 类型。error
- 如果上传文件时发生了错误,则为 true
;否则为 false
。size
- 上传文件的大小(以字节为单位)。以下示例演示了如何使用 wp_handle_upload()
函数来上传文件并返回其相关信息:
<?php
// 获取上传文件表单字段名称
$file = $_FILES['file'];
// 设置上传文件的选项
$overrides = array(
'test_form' => false,
'unique_filename_callback' => 'my_unique_filename_callback'
);
// 调用 wp_handle_upload() 函数将文件上传到服务器
$file_info = wp_handle_upload($file, $overrides);
// 输出上传文件的 URL 和文件名
echo '文件已上传:' . $file_info['url'];
echo '文件名:' . $file_info['file'];
?>
wp_handle_upload()
函数只能处理一个上传文件。如果要上传多个文件,应该在 HTML
表单中添加多个 <input>
元素,并分别使用 wp_handle_upload()
函数对每个元素处理上传文件。
在 $overrides
参数中,'test_form' => false
表示在上传文件时不使用 WordPress 上传测试表单。'unique_filename_callback' => 'my_unique_filename_callback'
是用于指定用户自定义的唯一文件名回调函数的选项。如果不包含此选项,则会使用默认的唯一文件名生成器。
如果在调用 wp_handle_upload()
函数时未指定时间戳,则函数将使用 time()
函数产生当前时间。这可能会导致在极少数情况下生成重复的文件名称。因此,对于时间戳,建议使用某些键入系统时间或具有足够随机性的值。
在返回的文件信息中,键 url
返回的是上传文件的公共 URL
。如果需要将它们存储在数据库或其他系统中,则可能需要使用其他方式生成和存储对这些文件的引用。