我正在调用的API向我返回一个字符串,例如'JVBERi0xL ....(更多)'
我将结果值设置为像
这样的变量 pdfFilevar file = "data:application/pdf;base64,"+res.data.result;
// here res.data.result = 'JVBERi0xL....(more)'
this.pdfFile = file;
我的HTML代码是
<object :data="pdfFile" name='test' type="application/pdf" width="100%" height="800px"></object>
像这样,我可以在浏览器中显示pdf,但是无法更改pdf文件的名称。
帮助: 我需要更改标有红色的名称。
添加了更大的图像: Larger version of the previous image
答案 0 :(得分:0)
文件的base64表示形式仅包含文件的内容,而不包含文件名。但是您可以通过以下方式手动分配文件名:
function download() {
const source = 'data:application/pdf;base64,'+res.data.result;
const downloadLink = document.createElement("a");
const fileName = 'file.pdf';
downloadLink.href = source;
downloadLink.download = fileName;
downloadLink.click();
}
答案 1 :(得分:-1)
**try this**
$file_parts = explode(";base64,", $file_data);
$file_type_aux = explode("pdf/", $file_parts[0]);
$file_type = $file_type_aux[1];
$file_base64 = base64_decode($file_parts[1]);
$file_name = rand(1111111111,9999999999).'.pdf';
$uploadDir = '/uploads/pdf/' ;
$file = $uploadDir.$file_name;
$f = file_put_contents($file, $file_base64);
$data['data'] = 1;
$data['file'] = $file;