在iphone微信内打开一个pdf或是docx格式文件下载链接的网页如何实现正常的在线预览呢
问题描述
对于同一个链接,PC端和andriod点击之后为下载操作,但是ios是在线预览,网上查找说是ios不支持下载,那么有没有办法是ios能够正常的在线预览呢?
代码
api层代码:当请求到该路由时,会拿图片id到数据库中操作获取图片16进制字符串,在这里转码之后传到前端页面
router.get('/download/:id', async (ctx) => {
const picture = await getFileById(ctx.params)
const data = Buffer.from(picture.results.FileContent, 'hex')
const path = picture.results.FileName.split('.')
const fileName = path.splice(0,path.length-1).join('.')
const fileType = path[path.length-1]
ctx.set('Content-Type','application/octet-stream;;charset=utf-8')
let agent = ctx.headers['user-agent'].toLowerCase()
let newFileName = urlencode.encode(fileName, "UTF-8")
if(agent.includes('firefox') || agent.includes('micromessenger')){ //火狐或者微信内置浏览器
console.log('-------------------------------1-----------------------------')
ctx.set("Content-Disposition", "attachment;filename*=" + newFileName + '.' + fileType)
}
else {
console.log('-------------------------------2-----------------------------')
ctx.set("Content-Disposition", "attachment;filename=" + urlencode(fileName) + '.' + fileType)
}
ctx.body = data
})
clinet层:当点击链接时开始下载,代码如下:
window.open(this.detailInfo.attachments[0].FilePath, this.detailInfo.attachments[0].FileName)
现在的效果?
PC端点击之后:
iphone中点击之后:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
怎么解决的,老哥
后来搞定了嘛,老哥