【问题标题】:editing file not taking default value=image_name编辑文件不采用默认值=image_name
【发布时间】:2018-07-10 09:38:12
【问题描述】:

查看

<form class="m-form" action="<?php echo AURL;?>products/update_product/<?php echo $products['product_id'];?>" method="post" enctype="multipart/form-data">

<input type="file" name="product_image_name" class="form-control m-input dropify" placeholder="" data-default-file="<?php echo Website_Assets.'images/'.$products['product_image_name'];?>" value="<?php $products['product_image_name'];?>" data-max-file-size="2M" required>

</form>

在上面的代码中,product_image_name 不取任何值,而是显示选择路径的图像,当我更改图像时,它会发布 image_name

控制器

public function update_product($product_id)
    {
        echo "<pre>";
        print_r ($_FILES['product_image_name']);
        echo "</pre>";
        exit();
    }

更改图像可以,但如果我不更改图像,则不会选择图像的默认值

【问题讨论】:

  • 输入 type="file" 不像普通字段那样工作。
  • 您不能为文件输入设置默认值/文件名
  • @kerbholz 如何将图像名称的默认值传递为隐藏或其他内容?我认为输入标签中可能有类似 value="" 的东西

标签: php html codeigniter codeigniter-3 dropify


【解决方案1】:

简答:file 类型的 input 不能有默认值。

改为使用&lt;img /&gt;-标签来显示默认图像。例如:

<img src=" <?php echo Website_Assets.'images/'.$products['product_image_name'];?>" />

正常回答:假设您正在尝试上传图片,请将其保存到表单后面的实体中,然后再对其进行编辑;试着考虑只使用一个字段。取而代之的可能是这样的序列:

  1. 使用上传字段上传文件
  2. 将上传的文件保存在运行PHP的机器上(服务器端)
  3. 在实体中存储上传文件的路径
  4. 在实体的编辑视图中显示:
    • 上传的图片(或占位符)
    • 上传新图片的上传字段

祝你好运!

提示:您可能还想看看像 dropzonejs 这样的开源库。现有的库通常会提供示例和出色的文档。这个例子直观地结合了上传字段和显示字段。

【讨论】:

  • 感谢@Webber,我使用了 1 个隐藏输入类型来传递默认图像的名称和 2 个输入类型:第一个是禁用但显示默认图像,第二个是用于上传文件
  • @Loek &lt;img src=" &lt;?php echo Website_Assets.'images/'.$products['product_image_name'];?&gt;"&gt; 这也不错,但我想要与我正在使用 dropify 类的图像的输入字段相同的布局
  • @AmirKhan 我刚刚改进了一个编辑该行的建议编辑,如果不正确,抱歉!
猜你喜欢
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 2016-01-16
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
相关资源
最近更新 更多