加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用pathinfo()时无法获得文件扩展名

发布时间:2020-12-13 22:54:56 所属栏目:PHP教程 来源:网络整理
导读:我正在为照片网站构建一个上传器,大多数上传的照片都是1232132_1231231_12.jpg类型.当我运行pathinfo()时,我得到了扩展的空白输出. 这是我的代码 $target_dir = "Photos/";$species = filter_input(INPUT_POST,'species');$country = filter_input(INPUT_POS
我正在为照片网站构建一个上传器,大多数上传的照片都是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;

给出了这个输出照片/ 2014-02-21 18.19.08.jpg

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

我的代码有问题或者pathinfo()与数字和特殊字符文件名不兼容吗?

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

解决方法

问题不是pathinfo.你在做一些奇怪的事情:

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

这一行是在一个循环中,$a介于0和…之间
$_FILES [“file”] [“name”]返回文件名.但:

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

将返回文件名中的第一个字母(例如2).
所以,你在变量上做一个pathinfo:

$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"]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读