flask-基于pdf.js的pdf在线阅读
来源:互联网 发布:linux命令mkdir p 编辑:程序博客网 时间:2024/04/29 21:00
先看效果图:
下面开始说代码
文件上传部分:
<!--引入几个依赖--><link href="/static/css/fileinput.css" media="all" rel="stylesheet" type="text/css" /><script src="/static/js/canvas-to-blob.min.js" type="text/javascript"></script><script src="/static/js/sortable.min.js" type="text/javascript"></script><script src="/static/js/purify.min.js" type="text/javascript"></script><script src="/static/js/fileinput.js"></script><script src="/static/js/zh.js"></script><script src="/static/js/pt-BR.js"></script><script src="/static/js/theme.js"></script><script src="/static/js/LANG.js"></script><!--初始化一个上传组件--><script type="application/javascript"> function initFileInput(ctrlName, uploadUrl) { var control = $('#' + ctrlName); control.fileinput({ language: 'zh', //设置语言 uploadUrl: uploadUrl, //上传的地址 allowedFileExtensions : ['pdf'],//接收的文件后缀 showRemove: false, showZoom: false, showCaption: false,//是否显示标题 browseClass: "btn btn-primary", //按钮样式 previewFileIconSettings: { 'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>' } }); }</script><div style="width:50%; padding-top: 5%"> <label class="control-label">Select File</label <input id="file-Portrait" type="file" class="file" data-preview-file-type="text"> <script> initFileInput("file-Portrait", "/api/upload"); </script></div>
UPLOAD_FOLDER = './static/doc'app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER # 设置文件上传的目标文件夹@app.route("/api/upload", methods=["GET", "POST"])def upload(): file = request.files.get("file_data") msg = api_upload(app, file) upload_msg = json.loads(msg.data.decode("utf-8")) errmsg = upload_msg.get("errmsg") return jsonify({"msg": errmsg})def api_upload(app_boj, file): basedir = os.path.abspath(os.path.dirname(__file__)) # 获取当前项目的绝对路径 file_dir = os.path.join(basedir, app_boj.config['UPLOAD_FOLDER']) # 拼接成合法文件夹地址 if not os.path.exists(file_dir): os.makedirs(file_dir) # 文件夹不存在就创建 fname = file.filename ext = fname.rsplit('.', 1)[1] # 获取文件后缀 unix_time = int(time.time()) new_filename = str(unix_time)+'.'+ext # 修改文件名 file.save(os.path.join(file_dir, new_filename)) #保存文件到upload目录 return jsonify({"result": 1, "new_name": new_filename, "errmsg": "上传成功"})
在线查看部分
先看一下这里要用到的pdf.js的组织结构(这个很重要)
<div class="container"> <div class="row"> <div class="col-lg-9 col-lg-offset-2" style="height: 595px"> <iframe class="frame_style" src="http://127.0.0.1:5000/static/pdfjs/web/viewer.html?file=\static\doc\1481953691.pdf"> </iframe> </div> </div></div>
@app.route('/show', methods=["GET"])def show_test(): return render_template("show.html")
按照前面的组织结构组织好pdf.js之后,重点就在iframe的src部分了。这里为了方便演示写死的,可以作为参数传入,就能够实现点击文档在线查看了。
最后放上这个demo的git地址,可以下载pdf.js的部分,嵌入任何语言都一样使用。
[demo地址]
0 0
- flask-基于pdf.js的pdf在线阅读
- C# 在线PDF阅读
- C# 在线PDF阅读
- C# 在线PDF阅读
- 基于HTML的PDF展示 pdf.js
- pdf.js 在线预览
- PDF.js插件的使用--在线浏览PDF文件
- asp.net在线阅读pdf
- PDF 转 SWF 在线阅读
- JAVA常用API或编程工具003--实现pdf在线阅读功能之pdf.js
- 学习笔记:PDF.js 在线pdf阅读插件(禁止打印,下载,每页水印)
- 使用pdf.js在线预览pdf
- PDF文件在线预览之pdf.js
- 求助,这样的在线阅读pdf怎么实现的?
- 实用的pdf在线阅读和处理工具
- 保存在线阅读的PDF文件到本地
- 基于pdf.js简单在线pdf文件预览跨域解决方案,兼容性好!
- js在线预览pdf文件
- OpenFileDialog()打开指定文件
- hadoop配置文件mapred-site.xml
- 如何将eclipse设置为炫丽的全黑背景!
- 软件架构师:那些情况下用全局变量危害小
- (c#)timer控件
- flask-基于pdf.js的pdf在线阅读
- Android堆栈理解
- Html中的列表
- java类的加载以及初始化顺序
- extern "C"的用法解析
- 冒泡排序示例
- WPF Image控件&Emgu Image控件&WinForm PictureBox控件
- sql之left join、right join、inner join的区别
- 免费的pdf 分割工具