📜  wp_handle_upload 返回上传的文件名 - PHP (1)

📅  最后修改于: 2023-12-03 15:06:02.359000             🧑  作者: Mango

wp_handle_upload 返回上传的文件名 - PHP

wp_handle_upload() 函数是 WordPress 在处理文件上传时使用的函数之一。此函数将上传的文件存储在本地服务器上,并返回文件的相关信息。

函数声明
wp_handle_upload( string $file, array $overrides = array(), int $time = null )
参数
  • $file(必填) - 文件上传表单字段的名称(例如,用户在表单上选择的文件输入字段的名称)。这通常是通过 HTML <input> 元素的 name 属性指定的。
  • $overrides(可选) - 一个关联数组,其中包含一些指示如何处理上传文件的选项。默认情况下,它是一个空数组。
  • $time(可选) - 上传文件的 Unix 时间戳。默认情况下,它为 nulltime() 函数将用于生成时间戳。
返回值

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。如果需要将它们存储在数据库或其他系统中,则可能需要使用其他方式生成和存储对这些文件的引用。