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

时间:2019-07-11 17:10:25

标签: php forms file pathinfo

我正在尝试回应上载税单的扩展名。该文档可以是任何图像或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";

echos'123'

我的替代PHP:

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

echos什么都没有

我希望看到回显: “ pdf 123“ 和“ pdf”

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

3 个答案:

答案 0 :(得分:1)

如果您使用name而不是tmp_name

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

答案 1 :(得分:0)

这将解决

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

因此在文件中连接变量

echo $path.'.'.$ext;

答案 2 :(得分:0)

tmp_name是磁盘上文件的临时名称/位置。

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

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