使用PHP脚本上传图像时严格标准错误

时间:2013-06-27 13:25:27

标签: php html image-uploading image-upload

我尝试用php编写一个图像上传器。但是当我尝试时它会出错。

错误是:

严格标准:在第10行的C:\ xx \ xx \ xx \ profile_image_upload_script.php中只能通过引用传递变量

第10行是: {/ 1}}


图片上传脚本

$extension = end(explode(".", $file_name_encrypted));

注意:脚本从html表单获取文件名,没有问题

2 个答案:

答案 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);