Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Через админку не получается загрузить картинку не прописывается путь

POKAMOLODOY Знаток (255), на голосовании 2 недели назад
Кто знает в php почему не показывает изображение хотя в папку uploads все сохраняется

Почему-то картинка в базе данных сохраняется без пути
в productcontroller
$ThumbnailName = '';
if ($image = $request->file('Thumbnail')) {
$ThumbnailName = time() . '-' . $image->getClientOriginalName();
$image->move('images/uploads', $ThumbnailName);
}Form.Blade
<div class="col-md-3">
<label for="Thumbnail" class="form-label">Миниатюра</label>
<input type="file" accept="image/*" class="form-control 'Thumbnail' is-invalid @enderror"
name="Thumbnail" $product value="{{$product->Thumbnail}}" @endisset>
</div>не знаю может это поможет?
Голосование за лучший ответ
Егор Виленский Гуру (2716) 1 месяц назад
Проблема возникает из-за того, что в базе данных сохраняется только имя файла, а не полный путь. Вот как это исправить:

---

### **1. Исправьте код в `ProductController`:**
Добавьте путь к папке при сохранении имени файла в БД:
```php
$ThumbnailName = '';
if ($image = $request->file('Thumbnail')) {
$ThumbnailName = time() . '-' . $image->getClientOriginalName();
$image->move('images/uploads', $ThumbnailName);
// Сохраните полный путь
$ThumbnailName = 'images/uploads/' . $ThumbnailName; // Добавьте эту строку
}
$product->Thumbnail = $ThumbnailName;
$product->save();
```

---

### **2. Проверьте путь к папке:**
- Убедитесь, что папка `public/images/uploads` существует и доступна для записи.
- Если используется Laravel, путь должен быть `public/storage/images/uploads`, и нужно создать симлинк:
```bash
php artisan storage:link
```

---

### **3. Исправьте вывод изображения в Blade:**
Используйте функцию `asset()`, чтобы получить корректный URL:
```php
<img src="{{ asset($product->Thumbnail) }}" alt="Thumbnail">
```

---

### **4. Проверьте права доступа:**
Выполните в терминале:
```bash
chmod -R 755 public/images/uploads
```

---

### **5. Дополнительные проверки:**
- Убедитесь, что в таблице `products` поле `Thumbnail` имеет тип `VARCHAR` с достаточной длиной.
- Если ошибка сохраняется, добавьте проверку на успешное сохранение файла:
```php
if ($image->move(...)) {
// Успешно
} else {
dd('Ошибка загрузки файла');
}
```

**Итог:** После этих изменений путь к изображению будет сохраняться в БД, и картинка отобразится корректно.
kat Мастер (1067) 1 месяц назад
надо перед сохранением файла в папку прописывать путь в переменную для базы данных
POKAMOLODOYЗнаток (255) 1 месяц назад
А можно по подробней?
roman Мастер (1124) 1 месяц назад
может ты просто не сохраняешь путь в базу данных добавь туда путь к картинке
ele Мастер (1287) 1 месяц назад
может в контроллере забыла прописать $product->Thumbnail = $ThumbnailName перед сохранением в базу
POKAMOLODOYЗнаток (255) 1 месяц назад
есть уже делал
Анна Субхонкулова Мастер (1858) 1 месяц назад
чел походу в контроллере путь до картинки в базу не записывается добавь $product->Thumbnail = 'images/uploads/' . $ThumbnailName
Glynn Мастер (1015) 1 месяц назад
потому что переменная $ThumbnailName не сохраняется в базу добавь её в массив для insert
Александр Гущин Мастер (1702) 1 месяц назад
может проблема в том что ты не сохраняешь путь в базу данных проверь код на это
Владимир Ерёмин Мастер (1790) 1 месяц назад
может быть проблема в том что путь к картинке не сохраняется в базе проверь код еще раз
Никита Дёмин Мастер (1423) 1 месяц назад
может проблема в том что ты не добавил путь в базу данных проверь код в контроллере
Дима Кусков Гуру (2564) 1 месяц назад
может быть ты не сохраняешь путь в базу данных проверь код и добавь путь к картинке
Самир Дегтярев Мастер (1860) 1 месяц назад
может быть ты не сохраняешь путь в базу данных проверь код и попробуй добавить путь
Стас Шабалин Мастер (1744) 1 месяц назад
может быть ты не сохраняешь путь в базу данных проверь код и добавь путь к картинке
Ардаш Малов Мастер (2386) 1 месяц назад
может проблема в том что ты не сохраняешь путь в базу данных проверь код на это
Похожие вопросы