file_get_contents()的条件语句

时间:2014-08-08 17:23:26

标签: php mysql image blob conditional-statements

我正在尝试在编辑表单时上传图片。但是,当我更新它而不上传新图片时,它会删除在DB中存储为BLOB的图片,当我上传新图片时它会正常工作。但是当它为空时它会失败,表示file_get_contents不能为空并删除存储的图片(如果存在)

$image = addslashes(file_get_contents($_FILES['prod_pic']['tmp_name']));

如果($ image = file_get_contents())为空{

什么都不会发生,什么都不会被删除而且会被忽略 }

其他{ 上传或替换现有图片。 }

1 个答案:

答案 0 :(得分:0)

您需要检查$ _FILES [' prod_pic'] ['错误']。它是一个集成商,如果它优于零,则无法上传文件。在您的情况下,它是代码错误4(未选择文件)。

所以你可以做到

if ($_FILES['prod_pic']['error'] == 0)
    // replace current image with uploaded one

更多信息:http://php.net/manual/fr/features.file-upload.errors.php

您还可以查看$ _FILES [' prod_pic'] [' name'],因为在没有选择文件时它是空的:

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

建议使用第一个选项,因为文件可以部分上传。