读取已存在的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;

最新文章

  1. Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发
  2. F-并查集
  3. 磁盘IO
  4. window.onload() 和 $(function(){})
  5. Java-类和对象基础练习
  6. Java学习笔记(一)——HelloWorld
  7. WebServiceCaller
  8. 在此页上的ActiveX控件和本页上的其他部分的交互可能不安全,你想允许这种交互吗
  9. [软件推荐]转换html到chm的软件,winchm pro
  10. 发送WIN+SAPCE键,WINDOWS,空格键
  11. cf C. Mittens
  12. 走进C标准库(3)——"stdio.h"中的getc和ungetc
  13. 《Java虚拟机原理图解》 1.2.2、Class文件里的常量池具体解释(上)
  14. redis配置密码认证
  15. ZOJ 3933 Team Formation
  16. 201521123045 《Java程序设计》第12周学习总结
  17. javaWeb之eclipse创建Servlet模板快捷键设置
  18. 分享一段js,判断是否是在iPhone中的Safari浏览器打开的页面
  19. “ORA-12154: TNS: 无法解析指定的连接标识符”错误解决办法
  20. [精华][推荐]CAS SSO 单点登录框架学习 环境搭建

热门文章

  1. sass、less中的scoped属性
  2. B/S实现大视频上传
  3. 【noip2016提高组day2T3】【愤怒的小鸟】状压dp转移时的集合包含
  4. Sign on Fence(连续的长为W的一段中最小的数字的最大值)
  5. Oracle update或alter表被锁住的问题
  6. [CF46D]Parking Lot
  7. MySQL Password Expired
  8. 字符串处理工具Guava使用总结
  9. wow64 32位进程中切换64位模式,取回64位寄存器值
  10. list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库