Получение неподдерживаемого типа изображения. Драйвер GD может только декодировать файлы JPG, PNG, GIF или WebP при загрузке изображения - PullRequest
0 голосов
/ 01 мая 2020

Я включил библиотеку Intervention Image (v-2.5) в мое приложение laravel (v-5.1) для изменения размера изображений. Он работает нормально на локальном сервере, но при развертывании его на работающем сервере я получаю эту ошибку: Unsupported image type. GD driver is only able to decode JPG, PNG, GIF or WebP files. . Размер моего изображения - 18 КБ, а тип пантомимы - jpg. Так что с моим изображением все в порядке. Вот мой код, который я использую для преобразования и сохранения на сервер:

            foreach ($request->images as $file) {
                // getting file name with extension
                $imageName = getFileName($file);

                $homeworkImage = new HomeworkImage();
                $homeworkImage->tbl_homework_id = $homework->homework_id;
                $homeworkImage->image_name = $imageName;

                if ($homeworkImage->save()) {
                    // $file->move('uploads/homework', $imageName);

                    $image_resize = Image::make($file->getRealPath());
                    $image_resize->resize(300, 300);
                    $image_resize->save('uploads/homework/' . $imageName);
                }
            }

Если я пытаюсь загрузить изображение в обычном режиме, то оно работает нормально. Кто-нибудь может указать мне, если я что-то упустил!

1 Ответ

0 голосов
/ 01 мая 2020

Вы должны l oop запросить входные файлы $request->file('images'), вместо этого просто запросить ввод $request->images.

Затем вы можете получить исходное имя файла методом ->getClientOriginalName().

foreach($request->file('images') as $file) {
    // getting file name with extension
    $imageName = $file->getClientOriginalName(); 

    $homeworkImage = new HomeworkImage();
    $homeworkImage->tbl_homework_id = $homework->homework_id;
    $homeworkImage->image_name = $imageName;

    if ($homeworkImage->save()) {
        // create instance
        $image_resize = Image::make($file);

        // resize image to fixed size
        $image_resize->resize(300, 300);

        // save the file
        $image_resize->save('uploads/homework/' . $imageName);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...