PHP 中获取上传文件的原始文件名157


在 Web 应用开发中,经常需要从用户处获取上传文件。在 PHP 中,可以通过 $_FILES 超全局变量访问上传的文件信息。然而,该变量提供的文件名不是原始文件名,而是经过 PHP 编码后的临时文件名。

获取原始文件名

要获取上传文件的原始文件名,可以使用以下方法:
从 $_FILES 超全局变量中获取文件的 name 字段。这将得到经过编码的临时文件名。
使用 pathinfo() 函数解析临时文件名,提取原始文件名。pathinfo() 函数需要将临时文件名作为第一个参数,并指定 PATHINFO_FILENAME 作为第二个参数。

以下代码演示了如何获取上传文件的原始文件名:
```php

```

避免文件名篡改

需要注意的是,上述方法依赖于用户提供的文件名,这可能导致文件名篡改。例如,恶意用户可以上传一个名为恶意脚本的文件,但将其命名为无害的文件。为了避免此问题,强烈建议使用服务器端的文件名生成机制。

可以通过以下方法生成唯一的服务器端文件名:
使用 uniqid() 函数生成一个随机的文件名。
将原始文件名作为文件名的后缀。

以下代码演示了如何生成唯一的服务器端文件名:
```php

```
通过这种方式,您可以避免文件名篡改并增强 Web 应用的安全性。

2024-11-06


上一篇:如何使用 PHP 读取所有文件

下一篇:PHP 数组:计算数量和操作长度