gpt4 book ai didi

php - 使用 pathinfo() 时无法获取文件扩展名

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:27 25 4
gpt4 key购买 nike

我正在为一个图片网站构建一个 uploader ,上传的大部分照片都是 1232132_1231231_12.jpg 类型的。当我运行 pathinfo() 时,我得到扩展的空白输出。

这是我的代码

$target_dir = "Photos/";
$species = filter_input(INPUT_POST, 'species');
$country = filter_input(INPUT_POST, 'country');
$type= filter_input(INPUT_POST, 'type');
include_once 'connection.php';
echo $target_dir . basename($_FILES["file"]["name"]);
for($a=0;$a<count($_FILES['file']['tmp_name']);$a++)
{
$target_file = $target_dir . basename($_FILES["file"]["name"][$a]);
$imageFileType=pathinfo($target_file, PATHINFO_EXTENSION);
var_dump(pathinfo($target_file));

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" )
{
echo "<br> Sorry, only JPG, JPEG, PNG & GIF files are allowed. your file is a $imageFileType <br>";
}
}

图片/2014-02-21 18.19.08.jpg

 echo $target-file;

给出这个输出 Photos/2014-02-21 18.19.08.jpg

对于 var_dump 这被回显到屏幕上,array(3) { ["dirname"]=> string(6) "Photos"["basename"]=> string(1) "2"["文件名"]=> 字符串(1) "2"}

是我的代码有问题还是 pathinfo() 不能很好地处理数字和特殊字 rune 件名?

是否有另一个函数可以处理这些类型的文件名,或者应该用 '.' explode() $target_file并获取返回数组中的最后一个元素?

最佳答案

问题不是路径信息。你在做一些奇怪的事情:

$target_file = $target_dir . basename($_FILES["file"]["name"][$a]);

这一行在一个循环中,其中 $a 介于 0 和...$_FILES["file"]["name"] 返回文件名。但是:

$_FILES["file"]["name"][0]

将返回文件名的第一个字母(例如 2)。所以,你正在对你的变量做一个路径信息:

$target_file = $target_dir . basename($_FILES["file"]["name"][$a]); // looks like $target_file = Photos/2 (when $a = 0)

像这样更改该行:

$target_file = $target_dir . basename($_FILES["file"]["name"]);

关于php - 使用 pathinfo() 时无法获取文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29334302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com