Файл редактирования не принимает значение по умолчанию = имя_изображения
Посмотреть
<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();
}
смена изображения работает нормально, но если я не изменю изображение, оно не выбирает значение по умолчанию для изображения
1 ответ
Краткий ответ: Ан input
типа file
не может иметь значение по умолчанию.
Вместо этого используйте <img />
-Tag, чтобы показать изображения по умолчанию. Например:
<img src=" <?php echo Website_Assets.'images/'.$products['product_image_name'];?>" />
Обычный ответ: если вы пытаетесь загрузить изображение, сохраните его в объекте, который находится за формой, а затем отредактируйте его; попытайтесь обдумать, используя только одно поле. Вместо этого возможно последовательность как это:
- Загрузите файл, используя поле загрузки
- Сохраните загруженный файл на компьютере, на котором работает PHP (на стороне сервера)
- Сохраните путь к загруженному файлу в объекте
- В представлении редактирования сущности показать оба:
- изображение, которое было загружено (или заполнитель)
- поле загрузки для загрузки нового изображения
Удачи!
Совет: Вы также можете взглянуть на библиотеки с открытым исходным кодом, такие как dropzonejs. Существующие библиотеки часто дают примеры и отличную документацию. В этом примере визуально комбинируется поле загрузки с полем отображения.