后台PDF返回Base64,前台接收预览
2024-09-01 03:54:22
读取已存在的PDF文件,path为绝对路径
string base64String = "";
byte[] buffer=null;
using (FileStream fs = new FileStream(path, FileMode.Open))
{
long fileSize = fs.Length;
buffer = new byte[(int)fileSize];
fs.Read(buffer, , (int)fs.Length);
base64String = Convert.ToBase64String(buffer);
}
//生成base64后删除原文件
if (System.IO.File.Exists(newPdf))
{
System.IO.File.Delete(newPdf);
}
//return File(buffer, "application/ms-pdf", fileName);//返回文件流,前台接收可以直接下载
return Json(new { success = true, pdfBase64String = "data:application/pdf;base64," + base64String });
前台接收处理,接收到的字符串赋值到iframe的src上,由于我用的layui,弹出层可以根据type决定类型,type值为2就是iframe弹出层,所以直接就赋值给弹出层了
function lookInfo(id) {
layer.load();
$.ajax({
url: '/Login/DownLoad',
type: 'post',
data: {id : id},
success: function (data) {
layer.closeAll('loading');
if (data.success) {
layer.open({
title: "信息",
type: ,
area: ['100%', '100%'],
content: data.pdfBase64String
});
} else {
layer.msg(data.msg, { icon: , time: });
}
}, error: function () {
layer.closeAll('loading');
layer.msg('网络错误,请稍后重试', { icon: , time: });
}
}) }
上面后台还注释(橙色字体)了一个返回文件流的方式,这种情况前台直接调用后台路径,就可以下载了。如:
window.open("/Login/DownLoad?id=" + id;
最新文章
- Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发
- F-并查集
- 磁盘IO
- window.onload() 和 $(function(){})
- Java-类和对象基础练习
- Java学习笔记(一)——HelloWorld
- WebServiceCaller
- 在此页上的ActiveX控件和本页上的其他部分的交互可能不安全,你想允许这种交互吗
- [软件推荐]转换html到chm的软件,winchm pro
- 发送WIN+SAPCE键,WINDOWS,空格键
- cf C. Mittens
- 走进C标准库(3)——";stdio.h";中的getc和ungetc
- 《Java虚拟机原理图解》 1.2.2、Class文件里的常量池具体解释(上)
- redis配置密码认证
- ZOJ 3933 Team Formation
- 201521123045 《Java程序设计》第12周学习总结
- javaWeb之eclipse创建Servlet模板快捷键设置
- 分享一段js,判断是否是在iPhone中的Safari浏览器打开的页面
- “ORA-12154: TNS: 无法解析指定的连接标识符”错误解决办法
- [精华][推荐]CAS SSO 单点登录框架学习 环境搭建