0

我有一个脚本,主要基于从jQuery Uploader上传 PHP 文件的示例。它使用以下代码获取文件类型(它获取此 $_FILES 组件)...

$fileType = (isset($_SERVER['HTTP_X_FILE_TYPE']) ? $_SERVER['HTTP_X_FILE_TYPE'] : $upload['type']);

笔记; $upload['type'] 来自 $_FILES['files']['type']。

现在,这很好 - 除了某些文件似乎没有文件类型信息。我可以通过在 PHP 中使用文件信息和 mimetype 函数获得更准确的响应- 但它们不适用于 $_FILES 对象,我正在尝试在将文件传输到 s3 之前进行此检查,所以我真的不想在本地加载它。

谁能建议我是否可以从 $_FILES 获得更准确的报告类型,还是必须在本地加载才能运行这些替代 PHP 函数?

4

1 回答 1

1

finfo是这样做的唯一方法。不能依赖客户端发送给您的信息,从客户端伪造太容易了。

没有理由不使用它$_FILES,您只需将$_FILES['files']['tmp_name']其作为文件路径传递 - 这仍然是有效的文件路径,您无需调用move_uploaded_file()即可访问数据。将文件留在临时位置还有一个好处,即如果您没有对它做任何事情,它会在脚本完成时被销毁。

于 2012-06-06T15:30:39.463 回答