提交表单后如何在不选择要上传的新图像的情况下保留以前上传的图像(在db中)

How to keep the previous uploaded image (in db) after submitting a form without selecting a new image to be uploaded

我有一个用于创建文章的简单表格:标题、图片、类别、body 等。 我的问题是图像输入。

选择一个新的并提交一切正常:

通过编辑整个表单,填写所有字段但保留图片字段原样,最后提交,db 中的图片字段值变为空。

如何配置 php 文件,以便每次用户提交 不选择图像的形式(如果有预先上传的图像 那篇文章)保持提交前一张图片(来自数据库) 一无所有。?


如果这些信息对您有帮助:

我可以这样打印图像:<?php echo '<img src="'.$results['article']->img.'" width="100px">'; ?>

图像的简单输入字段:

<input type="file" name="fileToUpload" id="fileToUpload"  value="<?php echo $results['article']->img ?>" />

创建一个 if 子句来检查 fileupload 输入是否为空。如果为空则不执行查询。

使用没有属性值的输入类型="file"。

<input type="file" name="fileToUpload" id="fileToUpload" />

这里是 if 子句的例子

if(!empty($_FILES['fileToUpload']['name'])) {
        $origFile = $_FILES['fileToUpload']['name'];
        $tempFile = $_FILES['fileToUpload']['tmp_name'];
        $sizeFile = $_FILES['fileToUpload']['size'];

        /* UPLOAD CODE GOES HERE */
    }

这样的事情怎么样?

if(!empty($_FILES['fileToUpload']['name'])) //new image uploaded
{
   //process your image and data
   $sql = "UPDATE table SET name=$someName, image=$someImageName,... WHERE id = $someId";//save to DB with new image name
}
else // no image uploaded
{
   // save data, but no change the image column in MYSQL, so it will stay the same value
   $sql = "UPDATE table SET name=$someName,... WHERE id = $someId";//save to DB but no change image column
}
//process SQL query in $sql

成功了,非常感谢

简短的解决方案

  1. 检查文件是否为空:if(!empty($_FILES['fileToUpload']['name']))
  2. 在 IF 语句的 table 中提及图像列进行更新查询, 如果没有上传图片,那么它会上传
  3. 在 ELSE 语句的 table 中不提及图像列进行更新查询,如果文件为空,它将上传

结论

下次更新任何其他字段时,图像不会消失,这意味着数据库中的文件路径不会为空,如果已经存在,除非您手动更改它,否则它不会改变..