我尝试用php编写一个图像上传器。但是当我尝试时它会出错。
错误是:
严格标准:在第10行的C:\ xx \ xx \ xx \ profile_image_upload_script.php中只能通过引用传递变量
第10行是: {/ 1}}图片上传脚本
$extension = end(explode(".", $file_name_encrypted));
注意:脚本从html表单获取文件名,没有问题
答案 0 :(得分:0)
解决这个问题的方法是先爆炸,然后再使用该数组。
end()
需要通过引用传递其参数,因为它操纵内部指针,但如果没有变量引用,它将无法正常工作。
试试这个
$array = explode(".", $file_name_encrypted);
然后
$extension = end($array);
答案 1 :(得分:0)
注意$file_name_encrypted
不会包含真实的或匹配的扩展程序,因为您的附加文件名为md5:
$file_name_encrypted = $file_name."".md5(rand(1, 1000000));
例如filename.jpg79054025255fb1a26e4bc422aef54eb4
因此它永远不会匹配$allowedExts
数组中的任何数组。然后修复:
也改变那条线:
$extension = pathinfo($file_name_encrypted, PATHINFO_EXTENSION);
或者爆炸然后将爆炸传递给end()函数。
$temp = explode(".", $file_name_encrypted);
$extension = end($temp);