finfo_file($finfo, $_FILES["file"]["tmp_name"])
时间: 2024-05-18 14:16:00 浏览: 17
`finfo_file($finfo, $_FILES["file"]["tmp_name"])` 是 PHP 中的一个函数调用,用于获取上传文件的 MIME 类型。
这个函数需要传入两个参数。第一个参数 `$finfo` 是一个 FileInfo 对象,可以使用 `finfo_open()` 函数创建。第二个参数 `$_FILES["file"]["tmp_name"]` 是上传文件的临时存储路径。
函数会根据文件内容的特征判断出文件的 MIME 类型,并将其作为字符串返回。如果无法判断文件类型,则返回 `false`。
需要注意的是,文件类型判断并不总是准确的,特别是对于一些非标准的文件类型或者自定义的文件类型,可能会出现判断错误的情况。因此,在使用 MIME 类型进行文件处理时,应该谨慎对待,并且在必要时进行二次确认。
相关问题
如何让这个表达式结果为真finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'
要让表达式 `finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'` 的结果为真,需要满足两个条件:
1. `$finfo` 是一个有效的 `finfo` 对象,可以通过 `finfo_open()` 函数创建。
2. `$_FILES["file"]["tmp_name"]` 指向的上传文件是一个 ZIP 文件,其 MIME 类型为 'application/zip'。
因此,可以按照以下步骤实现:
1. 创建 `finfo` 对象:`$finfo = finfo_open(FILEINFO_MIME_TYPE);`
2. 判断上传文件的 MIME 类型是否为 'application/zip':`if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip') { ... }`
3. 对于验证成功的情况,进行相应的操作;对于验证失败的情况,给出相应的提示或处理。
完整的代码示例:
```
$finfo = finfo_open(FILEINFO_MIME_TYPE);
if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip') {
// 上传文件是 ZIP 文件,进行相应的操作
} else {
// 上传文件不是 ZIP 文件,给出提示或进行处理
}
finfo_close($finfo);
```
PHP的函数finfo_file($finfo, $_FILES["file"]["tmp_name"]);返回boolean false是怎么回事?
在 PHP 中,`finfo_file()` 函数返回 `false` 值的情况比较多,主要有以下几种情况:
1. 文件不存在或者不可读:如果指定的文件不存在或者不可读,`finfo_file()` 函数会返回 `false`。
2. 文件类型无法识别:对于某些非标准的文件类型或者自定义的文件类型,`finfo_file()` 函数可能无法准确识别文件类型,此时也会返回 `false`。
3. FileInfo 对象未正确初始化:如果 FileInfo 对象未正确初始化,例如没有使用 `finfo_open()` 函数创建对象,或者创建对象时传入的参数无效,`finfo_file()` 函数也会返回 `false`。
在你的情况下,`finfo_file()` 函数返回 `false`,可能是由于文件不存在或者不可读导致的。你可以使用 `var_dump()` 函数打印出返回值,查看其类型和具体值,以便进一步排查问题:
```php
$mime = finfo_file($finfo, $_FILES["file"]["tmp_name"]);
var_dump($mime); // 输出 boolean false
```
如果返回值是 `false`,你可以尝试检查上传文件的临时存储路径是否正确,以及是否有足够的权限读取该文件。如果问题依然存在,你可以考虑使用其他方式获取文件类型信息,例如文件扩展名等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)