1

我正在尝试获取上传文件的扩展名并将其回显到我的页面上。

$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()没有注册数组或类似的东西。

4

2 回答 2

2

主要问题是您完全错误地解决了这个问题。当手术刀可以使用时,不要使用一堆火箭筒:

$file_extn = pathinfo($file_name, PATHINFO_EXTENSION);

没有阵列,没有爆炸。只是一个很好的简单代码,它对你正在尝试做的事情是显而易见的。

于 2013-06-28T18:40:38.573 回答
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,这是查找文件扩展名的更好方法。你可以在这里读到它 :

http://php.net/manual/en/function.pathinfo.php

于 2013-06-28T18:36:20.727 回答