【问题标题】:How to retrieve an (image) file from the database and place that into a form when updating a record?如何在更新记录时从数据库中检索(图像)文件并将其放入表单中?
【发布时间】:2013-12-23 15:41:55
【问题描述】:

我遇到了更新记录时无法在表单上显示文件名的问题。由于无法显示任何图片,我将尝试口头解释。

对于普通输入字段,我可以从我的数据库中检索我想要的特定字段。例如:

<label for="name">Product Name:</label>
<input type="text" maxlength="30" size="25" value="<?php echo $product_name; ?>" name="product_name" />

但是当涉及到图像输入部分时,我无法检索已上传文件的名称。我做了如下所示的方法,但是当我运行我的代码时,它不显示文件名,而是显示“未选择文件”这一短语

<label for="image">Product Image    </label>
<input type="file" name="image" id="image" value="<?php echo $product_image;?>" accept="image/*" />

我已经在我的标签中添加了 [enctype='multipart/form-data'] 部分,但它仍然不起作用。

有什么 PHP 解决方案可以解决这个问题?谢谢。

【问题讨论】:

  • 您如何将图像存储在数据库中?
  • 通常的[move_uploaded_file($_FILES['image']['tmp_name'], $target_path)]
  • 那么,您的 product_image 字段的内容是什么?存储图像的路径?
  • 我不明白你问题的第一部分。至于第二部分,路径只是 images/bugatti_veyron.jpg
  • 请更改您的输入:&lt;img src='&lt;?php echo $product_image;?&gt;' /&gt;

标签: php forms filenames


【解决方案1】:

否您不能在file 控件中设置值。你可以显示为

 Existing image:  <img src='<?php echo $file_name;?>' alt='old_image'/>

 Upload new image: <input type='file' name='image' id='image'/>

如果您将图像存储在数据库中,那么您必须将记录 id 传递给 PHP 才能即时获取图像。有很多教程可用于使用 db 处理图像。

你可以这样做。

在您的更新操作中,只需检查$_FILES["image"]["tmp_name"] 是否为空。如果为空,则图像字段没有变化。如果不为空,则必须将旧图像替换为新图像并更新数据库中的记录。

【讨论】:

  • 那么如何在“浏览”按钮旁边显示我当前拥有的文件名,以便我从计算机中选择新图像?
  • 你想什么时候选择?表单提交后?还是来自数据库?
  • 来自数据库。如果我想在表单之外单独显示文件名。然后我可以这样做,但我无法在表单中这样做。
  • 你是如何存储图像的?只有文件名还是blob 内容?
  • 我以文件名为基础存储我的图像。作为一名初级编程人员,我在存储图像时没有使用 blob
【解决方案2】:

这是不可能的,我认为您可以这样做的唯一方法是将图像从数据库回显到一个文本文件中,如果需要更改,用户可以在其中查看它,然后用户将在表单上输入一个新的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    相关资源
    最近更新 更多