как хранить изображения из листа Excel в Laravel 5 - PullRequest
0 голосов
/ 16 февраля 2019

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

 public function addExcel(Request $request)
{
    $request->validate([
'file' => 'required'
    ]);
     Excel::load($request->file('file')->getRealPath(), function ($reader) {
         foreach ($reader->toArray() as $key => $row) {
                $data['model_name'] = $row['model_name'];
                $data['part_number'] = $row['part_number'];


                if(!empty($data)) {
                    DB::table('products')->insert($data);
                }
            }
     });
     return 'done';
}

and this is my excel

1 Ответ

0 голосов
/ 16 февраля 2019

Это будет через собственную библиотеку, используемую за этим пакетом.Для получения дополнительной информации о том, как получить изображение из Excel, это их ссылка на документацию: https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#reading-images-from-a-worksheet.


    $i = 0;
    foreach ($spreadsheet->getActiveSheet()->getDrawingCollection() as $drawing) {
        if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) {
            ob_start();
            call_user_func(
                $drawing->getRenderingFunction(),
                $drawing->getImageResource()
            );
            $imageContents = ob_get_contents();
            ob_end_clean();
            switch ($drawing->getMimeType()) {
                case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_PNG :
                    $extension = 'png';
                    break;
                case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_GIF:
                    $extension = 'gif';
                    break;
                case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_JPEG :
                    $extension = 'jpg';
                    break;
            }
        } else {
            $zipReader = fopen($drawing->getPath(),'r');
            $imageContents = '';
            while (!feof($zipReader)) {
                $imageContents .= fread($zipReader,1024);
            }
            fclose($zipReader);
            $extension = $drawing->getExtension();
        }
        $myFileName = '00_Image_'.++$i.'.'.$extension;
        file_put_contents($myFileName,$imageContents);
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...