php - file_get_contents() 的条件语句

标签 php mysql image blob conditional-statements

我在编辑表单时尝试上传图片。但是,当我更新它而不上传新图片时,它会删除数据库中存储为 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/

相关文章:

在 php.ini 上更改 upload_max_filesize 后,PHP 文件上传大小受到限制

css - 通过 CSS 在图像上水平居中文本

php - PHP 文件的 FTP 传输类型 - 二进制传输适用于 PHP 文件吗?

php - 将字符串拆分为二元语法,忽略某些标签

php - MySQL Join 返回 1 行

image - 在 Meteor 中使用 Router 渲染模板后无法加载图像

php - 非常基本的连接到 mysql/测试问题

mysql - 如何在 LARAVEL 5.6 中一起使用 GROUP BY 和 ORDER BY

php - 防止全表扫描简单查询

python - 从数据库中读取内容 WHERE 'id' =