【发布时间】:2015-02-02 20:50:08
【问题描述】:
我正在 PHP 中创建一个上传函数,但是当我尝试上传时收到此消息:
严格的标准:在第 72 行中只能通过引用传递变量
我不确定我做错了什么。我该如何解决?
线条看起来像:
if(isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size = $_FILES['image']['size'];
$file_tmp = $_FILES['image']['tmp_name'];
$file_type = $_FILES['image']['type'];
$file_ext = strtolower(end(explode('.', $_FILES['image']['name']))); // LINE 72
$extensions = array("jpeg", "jpg", "png");
if(in_array($file_ext, $extensions)=== false){
echo "Filtypen skal være JPEG, JPG eller PNG.";
}
else {
move_uploaded_file($file_tmp, "../img/portfolio/".$file_name);
}
【问题讨论】:
-
改用
$foo = end(...); $ext = strtolower($foo)。 -
有趣的是,当创建一个没有特定顺序的数字键数组时,end() 仍然只会返回最后一个创建的值。所以,如果你有这样的东西: 这将打印“0”。试试这个 $str = explode('.',$_FILES['image']['name']); $str = 结束($str); $file_ext=strtolower($str);
标签: php upload pass-by-reference strict