изображение base64 загружено как 0 байт, а file_put_contents возвращает false в php - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь загрузить несколько изображений base64 в цикл for с помощью функции file_put_contents (), но иногда файлы загружаются как 0 байт Функция image и file_put_contents () возвращают false.Как это решить?Помощь приветствуется.

$filename = 'appimages/'.date('Y-m-d').'/'.$user_id.'/'.$clientCode;
                if (!file_exists($filename)) {
                    mkdir($filename, 0777, true);
                }

$id = $db->lastInsertId();
                $error = 0;
                $ef = 0;
                foreach ($images as $img) {
                    if(!empty($img)){
                        $image = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $img->imgs));
                        // $image = base64_decode($img->imgs);
                        $image_path = $filename.'/'.mt_rand( 100000 , 999999 ).'.png';
                        if(file_put_contents($image_path, $image)){
                            $main_image_path = 'https://consult-trico.com/bank/api/'.$image_path; 

                            $stmt11 = $db->prepare("INSERT INTO daily_transaction_images(dt_ID, deposit_slip_no, image, created_at) VALUES(:dt_ID,:deposit_slip_no,:image,:created_at)");

                            $stmt11->execute(['dt_ID' => $id,'deposit_slip_no' => $img->name, 'image' => $main_image_path, 'created_at' => date('Y-m-d H:i:s')]);
                        }else{
                           $error++; 
                       }
                   }
                   ++$ef;
               }
...