【问题标题】:How to save PDF in database with jsPDF?如何使用 jsPDF 将 PDF 保存在数据库中?
【发布时间】:2020-07-02 10:39:09
【问题描述】:

我正在生成 html 表格的 PDF。我想将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);
}

【问题讨论】:

    标签: javascript laravel vue.js vuejs2


    【解决方案1】:

    其实你可以将数据库中的数据URI保存为字符串,然后用axios

    获取

    这是获取 URI 字符串的方式:

    doc.output('datauri')
    

    【讨论】:

    • 这返回我的字符串,如data:application/pdf;filename=generated.pdf;base64,JVBERi0xLjMKJbrfrOAKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYX ...
    • 如何处理这个字符串?
    • 只需使用 PHP 将其保存在您的数据库中...一旦完成,您就可以在网站上显示 PDF:<object data="{the data uri}" type="application/pdf"></object>
    • 如何在控制器端获取图片 url。你能编辑我的控制器吗?
    • 可能这样:echo $_GET["pdf_file"] 如果不是...您将不得不进行一些挖掘...这就是我能提供的全部帮助
    猜你喜欢
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多