我在编辑表单时尝试上传图片。但是,当我更新它而不上传新图片时,它会删除数据库中存储为 BLOB 的图片,当我上传新图片时它会起作用。但当它为空时,它会失败,表示 file_get_contents 不能为空并删除存储的图片(如果存在)
$image = addslashes(file_get_contents($_FILES['prod_pic']['tmp_name']));
如果 ($image = file_get_contents()) 为空{
什么都不会发生,任何内容都不会被删除并被忽略 }
其他{ 上传或替换现有图片。 }
最佳答案
您需要检查$_FILES['prod_pic']['error']。它是一个整数,如果大于零,则文件无法上传。在您的情况下,这是代码错误 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
建议使用第一个选项,因为文件可能会部分上传。
关于php - file_get_contents() 的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208908/