用js下载一个从php生成的存折
Download with js a passbook generated from php
我需要下载一个PHP脚本创建的存折文件在js (angular应用程序)我试图使用这个库http://danml.com/download.html
我在服务器端使用这个代码:
header('Pragma: no-cache');
header('Content-type: application/vnd.apple.pkpass');
header('Content-Disposition: attachment; filename="card.pkpass"');
echo base64_encode($this->pass_outputfile);
在客户端:
var filename = responseInfo.headers["content-disposition"].indexOf("filename=");
filename = responseInfo.headers["content-disposition"].substring(filename+9);
var mime = responseInfo.headers["content-type"];
download(window.atob(response), filename.replace(/'"/g,''), mime);
下载开始正常,但pkpass文件无效…似乎文件被压缩了2次…谁能告诉我为什么?
好了,我终于得到它解码base64作为一个blob与这个函数,
function base64toBlob(base64Data, contentType) {
contentType = contentType || '';
var sliceSize = 1024;
var byteCharacters = atob(base64Data);
var bytesLength = byteCharacters.length;
var slicesCount = Math.ceil(bytesLength / sliceSize);
var byteArrays = new Array(slicesCount);
for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
var begin = sliceIndex * sliceSize;
var end = Math.min(begin + sliceSize, bytesLength);
var bytes = new Array(end - begin);
for (var offset = begin, i = 0 ; offset < end; ++i, ++offset) {
bytes[i] = byteCharacters[offset].charCodeAt(0);
}
byteArrays[sliceIndex] = new Uint8Array(bytes);
}
return new Blob(byteArrays, { type: contentType });
}
然后直接使用下载函数
download(base64toBlob(response,"application/vnd.apple.pkpass"), filename.replace(/'"/g,''), mime);
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 通过另一个php应用程序将我的项目推送到Github存储库中
- 如何在一页网站中使用PHP重定向到一个页面
- 当满足PHP条件时显示一个弹出窗口
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何将JavaScript变量的数据传递到另一个php页面
- JQuery-从PHP将多个列附加到一个表中
- 如何在PHP数组中加载下一个youtube
- HTML-使用mysql.php生成一个选择框.我怎样才能更改“;值“;生成的选择框选项的
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- Ajax/Php得到一个以上的结果
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- JavaScript到PHP的时间戳失败,增加了大约一个半月的时间
- 将javascript变量传递到下一个php页面
- 试图制作一个“;另存为“;使用php's”;file_put_contents”;和javascript&quo
- 将php页面URL中的变量传递给JavaScript和另一个php
- php重定向到一个空白页面
- 如何使用javascript/jquery将变量从一个PHP文件传递到另一个PHP文件
- PHP函数识别3个数字中最低的一个并更改其类
- 将一个php变量从js传递到php,并返回内容问题