Как сохранить PDF из base64 в базе данных с URL? - PullRequest
1 голос
/ 21 марта 2020

Я генерирую PDF из таблицы html. Я хочу сохранить PDF в базе данных. Этот скрипт скачивает PDF. Я хочу отправить PDF-файл на стороне контроллера, а затем сохранить в базе данных. Теперь я получаю строку base64 в контроллере, как я могу сохранить и получить URL-адрес?

 var doc = new jsPDF({
       unit: 'px',
       format: 'a4'
 });

    doc.fromHTML($('#revision_table').get(0), 2, 2);
    doc.save('scdedule_revision.pdf');
    var pdf = doc.output();

    axios.post(this.$path + 'api/savePdf', null,
           {
              params: {'pdf_file':  doc.output('datauri')}          
           }
    ).then(({data}) => (
           console.log(data)
         ))
    .catch(error => console.log(error));

Контроллер:

    public function savePdf(Request $request)
{

    $destinationPath = 'users/pdf';
    $fileuploadedpath = '';
    $pdf = $request->get('pdf_file');
    if ($pdf != '') {
        $extension = $pdf->getClientOriginalExtension();
        $fileName = rand(11111, 99999) . '.' . $extension;
        $success[0] = $pdf->move($destinationPath, $fileName);
        $fileuploadedpath = url($destinationPath . "/" . $fileName);
    }

    dd($fileuploadedpath);
}

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

для хранения base64 в базе данных вам нужно просто сохранить строку base64 в контроллере формы столбца базы данных

  $b64Doc = base64_encode(file_get_contents($this->pdfdoc));

Теперь для декодирования файла используйте файл all вам нужно получить таблицу формы данных base64, а затем использовать приведенный ниже код, чтобы снова получить PDF

// a route is created.
$route    = "pdf/".$name;

// decode base64
$pdf_b64 = base64_decode($base_64);

// you record the file in existing folder
if(file_put_contents($route, $pdf_b64)){

//just to force download by the browser
header("Content-type: application/pdf");

//print base64 decoded
 echo $pdf_b64;
}
0 голосов
/ 21 марта 2020

Попробуйте это

$data = file_get_contents('string path file');
$content = base64_decode($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...