Php 文件\u get\u contents()的条件语句

Php 文件\u get\u contents()的条件语句,php,mysql,image,blob,conditional-statements,Php,Mysql,Image,Blob,Conditional Statements,我试图在编辑表单时上传图片。但是,当我更新它而不上载新图片时,它会删除数据库中存储为BLOB的图片,当我上载新图片时,它会工作。但当它为空时,它会失败,说明文件内容不能为空,并删除存储的pic(如果存在) 如果($image=file\u get\u contents())为空{ 不会发生任何事情,不会删除和忽略任何内容 } 否则{ 上载或替换现有图片。 }您需要检查$\u文件['prod\u pic']['error']。这是一个整数,如果它优于零,则无法上载文件。在您的情况下,是代码错误4(

我试图在编辑表单时上传图片。但是,当我更新它而不上载新图片时,它会删除数据库中存储为BLOB的图片,当我上载新图片时,它会工作。但当它为空时,它会失败,说明文件内容不能为空,并删除存储的pic(如果存在)

如果($image=file\u get\u contents())为空{

不会发生任何事情,不会删除和忽略任何内容 }

否则{ 上载或替换现有图片。
}

您需要检查$\u文件['prod\u pic']['error']。这是一个整数,如果它优于零,则无法上载文件。在您的情况下,是代码错误4(未选择任何文件)

所以你可以

if ($_FILES['prod_pic']['error'] == 0)
    // replace current image with uploaded one
更多信息:

您还可以检查$_FILES['prod_pic']['name'],因为在未选择任何文件时,它是空的:

if (!empty($_FILES['prod_pic']['name'])) // = a file was selected
    // replace current image with uploaded one

但建议使用第一个选项,因为文件可能会部分上载。

$\u文件['prod\u pic']['tmp\u name']不需要使用addslashes进行转义。$image=file\u get\u contents();如果(!empty($image){/*上载或替换现有图片*/}也不是主题,但是对于上载,您应该使用move_upload_file()而不是file_get_contents(),我如何正确使用这些代码?我不知道。@whitep4如果是您的if条件,您将上载文件的代码放在这个条件内
if (!empty($_FILES['prod_pic']['name'])) // = a file was selected
    // replace current image with uploaded one