查看
<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();
}
更改图像工作正常,但如果我不更改图像,它不会选择图像的默认值
简短回答:类型为file
的input
不能有默认值。
相反,使用<img />
标记来显示默认图像。例如:
<img src=" <?php echo Website_Assets.'images/'.$products['product_image_name'];?>" />
正常答案:假设您正在尝试上传图像,请将其保存到表单后面的实体中,然后进行编辑;试着考虑只使用一个字段。相反,也许是这样一个序列:
- 使用上传字段上传文件
- 将上传的文件保存在运行PHP的机器上(服务器端(
- 将上载文件的路径存储在实体中
- 在实体的编辑视图中,显示以下两者:
- 上载的图像(或占位符(
- 用于上载新图像的上载字段
祝你好运!
提示:您可能还想了解像dropzonejs这样的开源库。现有的库经常提供示例和优秀的文档。此示例将上传字段与显示字段直观地组合在一起。