#php #laravel #multifile-uploader
#php #laravel #загрузчик нескольких файлов
Вопрос:
Здравствуйте и спасибо, что нашли время, чтобы помочь мне с моим вопросом. У меня есть приложение-задача, которое отлично работает. Когда вы загружаете изображения, вы можете увидеть их эскизы и даже щелкнуть по ним и перейти на новую вкладку, чтобы просмотреть изображения на 100%. Проблема в том, что когда клиент загружает pdf, значок отображается как значок сломанного изображения. Это имеет смысл, поскольку тег img в теге a, очевидно, является значком изображения.
Мой вопрос в том, как я могу указать в моем show.blade.php что это изображение, когда это изображение, и pdf или dox, когда это PDF или doc? Как я уже сказал, приложение работает, поэтому единственный код, который меня интересует, следующий (если я не ошибаюсь, пожалуйста, дайте мне знать):
...
<a data-toggle="" href="/storage/upload/{{ $images[$i]['name'] }}" target="_blank">
<img src="/storage/upload/{{ $images[$i]['name'] }}" class="image-fluid w-50">
</a>
</div>
@endfor
@else
<p class="ml-3 mb-1">No files found</p>
@endif
</div>
Я ищу что-то вроде условия, в котором говорится: если img, отобразите большой палец, если нет, отобразите значок, представляющий «файл».
Любая помощь по этому вопросу была бы весьма признательна. Заранее благодарю вас.
Ответ №1:
Вы можете просто использовать бесплатный API для достижения этой цели без написания какого-либо кода. Используйте ссылку ниже, чтобы получить свой значок в соответствии с расширением.
<img src="https://pro.alchemdigital.com/api/extension-image/pdf">
Для получения дополнительной информации прочитайте эту статью: Прочитайте эту статью
Ответ №2:
Чтобы заставить это работать, я изменил приведенный выше код на следующий:
@if (in_array($extension = pathinfo($images[$i]['name'], PATHINFO_EXTENSION), ['jpg', 'png', 'bmp']))
<a data-toggle="" href="/storage/upload/{{ $images[$i]['name'] }}" target="_blank">
<img src="/storage/upload/{{ $images[$i]['name'] }}" class="image-fluid w-50">
</a>
@else
<a data-toggle="" href="/storage/upload/{{ $images[$i]['name'] }}" target="_blank">
<img src="{{ "/icons/{$extension}.jpg" }}" class="image-fluid w-50">
</a>
@endif
</div>
@endfor
@else
<p class="ml-3 mb-1">No images found</p>
@endif
</div>
Затем я добавил папку icons и заполнил ее изображениями значков в формате jpg. Я надеюсь, что это поможет кому-нибудь еще с той же проблемой.