如何从前端的角度将PDF文件发送到laravel后端

时间:2019-02-02 03:45:48

标签: angular laravel jspdf

我正在尝试通过jsPDF插件将以角度创建的PDF文件发送到我的laravel后端。 我尝试获取base64 datauristring。并将其发送到后端。然后,我使用base64解码并将其写入存储。但是我无法获得确切的PDF文件,但有一个错误消息说文件已损坏。

1 个答案:

答案 0 :(得分:0)

这取决于您如何将页面转换为pdf。如果您使用addHtml(),则您的数据字符串以类似data:application/pdf;base64的开头。但是,如果您使用较新的版本jsPDFhtml(),则您的datauristring会稍有不同,并且看起来像这样data:application/pdf;filename=generated.pdf;base64,。请注意,新字符串filename=generated.pdf;已添加到其中。因此,请确保您正确解码了datauristring。

我使用.NET解码我的datauristring,由于您使用的是php,所以不确定是否对您有帮助。

var match = Regex.Match(strJson, @"data:application/pdf;filename=generated.pdf;base64,(?<data>.+)");
var base64Data = match.Groups["data"].Value;
// or simply strJson.Replace("data:application/pdf;filename=generated.pdf;base64,", "");
var binData = Convert.FromBase64String(base64Data);