我正在尝试抓取上传文件的扩展名并将其回显到我的页面上。
$file_name = $_FILES['profile_pic']['name'];
$file_extn = end(explode('.', $file_name));
$file_temp = $_FILES['profile_pic']['tmp_name'];
echo $file_extn;
我收到的错误是
严格标准:在第67行的C:\ xampp \ htdocs \ reptile_forum + help \ includes \ widgets \ logged_in.php中,只能通过引用传递变量。
第67行是"$file_ext ="
我没有正确使用end()
吗?还有什么我可以用来得到相同的结果吗?
注意:当我删除end()
并使用print_r()
时,数组会完美显示,就好像end()
没有注册数组或类似内容。
答案 0 :(得分:2)
主要问题是你完全以错误的方式解决这个问题。当手术刀会这样做时,不要使用一堆火箭筒:
$file_extn = pathinfo($file_name, PATHINFO_EXTENSION);
没有阵列,没有爆炸。只是一个很简单的代码,显然是关于你想要做的事情。
答案 1 :(得分:1)
试试这个:
$file_name = $_FILES['profile_pic']['name'];
$file_extn = pathinfo($file_name, PATHINFO_EXTENSION);
$file_temp = $_FILES['profile_pic']['tmp_name'];
echo $file_extn;
问题在于您试图将其爆炸并将结果发送到单个操作中的结束函数。它适用于大多数方法,但不适用于此方法,因为它需要将变量作为参考传递。
我将其更改为使用pathinfo,这是查找文件扩展名的更好方法。你可以在这里阅读: