我有一个表单,用户可以在其中编辑公开个人资料并在此过程中上传图片。一切正常,除非当用户上传了照片或者只是将其留空以不更改它仍然继续并尝试上传它并且如果它是空的则抛出错误...我确实有一个检查到位,但它只是忽略它。
if(isset($_FILES['userfile']))
{
$file_name = $this->session->userdata('user_id');
$img = $this->custom_lib->img_upload('./upload/user/', $file_name);
$user_pic = 'upload/user/'.$file_name.$img['file_ext'];
} else {
$user_pic = 'upload/default.png';
}
我认为问题在if语句中但是我看不出它可能是什么。如果我选择一个图像,它上传它就好了,一切正常。如果我将图像字段留空(不选择文件)而不是这样做:
$user_pic = 'upload/default.png';
它尝试上传一个不存在的文件......然后它会抛出一个错误。 img_upload()函数在我创建的自定义库中,但是如果没有提交文件,甚至不应该调用该函数。
我感谢任何帮助!
答案 0 :(得分:1)
isset 也将返回true。
要避免此问题,请使用 empty ,如下所示:
if(!empty($_FILES['userfile']))
如果$ _FILES ['userfile']包含非null,false或空的值,则只返回true。
希望有所帮助: - )。