如何使用 PHP 正确显示 HTML POST 文件的文件扩展名?

How do I correctly display a file extension from an HTML POST file using PHP?

我正在尝试回应上传的税务文件的扩展名。该文档可以是任何图像或 pdf。我计划稍后在代码中使用扩展名以正确的扩展名重命名文件。

目前不回显扩展。

我尝试了几种不同的方法并查看了文档和论坛。我好像还是做错了。

我的HTML:

<input type="file" class="" id="TaxFile" name="TaxFile" accept="image/*,application/pdf" ><br /><br />

我的PHP:

$taxpath = pathinfo($_FILES["TaxFile"]["tmp_name"]); echo $taxpath['extension'] . "\n123";

回声“123”

我的选择PHP:

$taxpath = $_FILES["TaxFile"]["tmp_name"]; $ext = pathinfo($taxpath, PATHINFO_EXTENSION); echo $ext;

没有回声

我希望看到回声: "pdf 123" 和 "pdf"

*我后面的代码实际上使用 move_uploaded_file($_FILES["TaxFile"]["tmp_name"], $target_file) 将文件保存到目标位置。只是 $target_file 不会包含正确的扩展名。

这将解决

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);

因此在您的文件中连接变量

echo $path.'.'.$ext;

如果您使用 name 而不是 tmp_name

,这应该对您有用
$path_parts = pathinfo($_FILES["TaxFile"]['name']);
$extension = $path_parts['extension'];
echo $extension;

tmp_name 是磁盘上文件的临时 name/location。

尝试使用 $_FILES["TaxFile"]["name"] 获取原始文件名。

否则,您使用 pathinfo()PATHINFO_EXTENSION 获取扩展名的方法是正确的。