mime_content_type (): может обрабатывать только строковые или потоковые аргументы. - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь показать прикрепленные документы пользователям, и поскольку вложения в основном представляют собой файлы, а не фотографии, такие как zip pdf docx Я хочу показать статические изображения относительно типа этих вложений, но я получаю эту ошибку

mime_content_type(): Can only process string or stream arguments

Примечание. Я использую Laravel PHP Framework, и эта проверка выполняется в шаблоне блейда

Code

@if(mime_content_type('images/'.$document->file == 'application/zip'))

    <img src="{{url('img')}}/zip.jpg" alt="zip file" class="img-fluid">

@elseif(mime_content_type('images/'.$document->file == 'application/pdf'))

    <img src="{{url('img')}}/pdf.jpg" alt="pdf file" class="img-fluid">

@elseif(mime_content_type('images/'.$document->file == 'application/msword'))

    <img src="{{url('img')}}/docx.png" alt="docx file" class="img-fluid">

@elseif(mime_content_type('images/'.$document->file == 'image/jpeg'))

    <img src="{{url('img')}}/jpeg.png" alt="jpeg file" class="img-fluid">

@elseif(mime_content_type('images/'.$document->file == 'image/png'))

    <img src="{{url('img')}}/png.png" alt="png file" class="img-fluid">

@else

    <img src="{{url('img')}}/unknown.png" alt="unknown file" class="img-fluid">

@endif

PS: еслиЯ использую этот код, например,

{{dd(mime_content_type('images/'.$document->file) )}}

Я получу

"application/zip"

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 28 октября 2019
@if(mime_content_type('images/'.$document->file == 'application/zip'))

вы должны использовать это (посмотрите на скобки): ваш код возвращает bool, а не строку

@if(mime_content_type('images/'.$document->file) == 'application/zip')
0 голосов
/ 28 октября 2019
mime_content_type('images/'.$document->file   ==   'application/zip')

Вы, вероятно, не хотите выполнять проверку на равенство этих двух строк в вызове функции.

'images/'.$document->file   ==   'application/zip'

false

Таким образом, вы в основном берете длинный путь написания:

@if (mime_content_type(false))
...