Как сохранить файл после декодирования base64? - PullRequest
0 голосов
/ 11 декабря 2018

Я использую панель подписи, и после нажатия кнопки «Сохранить» я могу сохранить изображение в папке tmp.В файловой модели я создал функцию saveFile

public function saveFile($data) {    
    $fileInfo = $this->saveTempFile($data);
}

private function saveTempFile($source) {
    $extension = $source->file('file')->getClientOriginalExtension();
    $dir = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
    $fileName = uniqid() . '_' . time() . '.' . $extension;
    $source->file('file')->move($dir, $fileName);

}

Когда я беру данные из формы файла, все в порядке, я могу сохранить.Но в панели подписи я использую декодирование base64 и сохраняю файл следующим образом:

public function saveTempFileFromString($data, $ext) {
    $tempFilename = uniqid();
    $tempFilepath = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $tempFilename . '.' . $ext;

    file_put_contents($tempFilepath, $data);
}

 // get base64 data
    $img = str_replace('data:image/png;base64,', '', $request->signature);
    $img = str_replace(' ', '+', $img);

    // decode base64
    $data = base64_decode($img);

    // save to tmp folder from string
    $file = new File;
    $fileInfo = $file->saveTempFileFromString($data, 'png');

Как я могу использовать только первую функцию для файла из формы и файла из декодирования base64?можно это сделать?

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