การนำไฟล์ PDF มาแสดงบน web browser

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

การนำไฟล์ PDF มาแสดงบน web browser

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

การนำไฟล์ PDF มาแสดงบน web browser หลากๆท่านอาจจะติดปัญหานี้ครับ ผมก็เลยมาแชร์วิธีนี้เพื่อจะได้เป็นประโยชน์และนำไปต่อยอดกับใครหลายๆคน ในการทำให้ไฟล์ PDF มาแสดงบน web browser นั้นก็คือทางฝั่ง client ร้องขอหรือ request ไฟล์จากฝั่ง server เพื่อจะขอไฟล์ pdf แล้ว server ก็ตอบกลับมา ก็มาวิธีการดังนี้
รูปแบบดังตัวอย่าง
Selection_010.png

โค้ดหน้า python

โค้ด: เลือกทั้งหมด

from flask import Flask, send_file,redirect,url_for,render_template

app = Flask(__name__)
@app.route('/')
def index():
    pdfpath='1.pdf'
    return render_template('home.html',data=pdfpath)

@app.route('/pdfshow/<path:data>', methods=['GET'])
def pdf(data):
    resp = send_file(data)
    resp.headers['Content-Disposition'] = "inline; filename=%s" % 'test.pdf'
    resp.mimetype = 'application/pdf'
    return resp

if __name__ == '__main__':
   app.run(debug=True)
โค้ดหน้า HTML

โค้ด: เลือกทั้งหมด

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="{{url_for('pdf', data=data)}}">คลิก PDF</a>
</body>
</html>
path ที่อยู่ของไฟล์ PDF
Selection_005.png
Selection_005.png (8.04 KiB) Viewed 1789 times
หน้าhtml
Selection_011.png
Selection_011.png (4.49 KiB) Viewed 1789 times
แสดงpdf
Selection_010.png

โค้ด: เลือกทั้งหมด

$ curl -i http://127.0.0.1:5000/pdfshow/1.pdf

HTTP/1.0 200 OK
Content-Length: 60681
Content-Type: application/pdf
Last-Modified: Fri, 28 Jun 2019 04:50:15 GMT
Cache-Control: public, max-age=43200
Expires: Mon, 01 Jul 2019 20:55:42 GMT
ETag: "1561697415.794865-60681-6360362"
Content-Disposition: inline; filename=test.pdf
Server: Werkzeug/0.15.4 Python/3.6.5
Date: Mon, 01 Jul 2019 08:55:42 GMT

Warning: Binary output can mess up your terminal. Use "--output -" to tell 
Warning: curl to output it to your terminal anyway, or consider "--output 
Warning: <FILE>" to save to a file.
อ้างอิง
http://www.flask.pocoo.org/snippets/100/
https://www.stackoverflow.com/questions/11773348/python-flask-how-to-set-content-type
http://www.blog.luisrei.com/articles/flaskrest.html
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: การนำไฟล์ PDF มาแสดงบน web browser

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ
ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

Re: การนำไฟล์ PDF มาแสดงบน web browser

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

thatsawan เขียน:browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ
ได้ทุก browser ครับ
tatiya
PHP VIP Members
PHP VIP Members
โพสต์: 2845
ลงทะเบียนเมื่อ: 09/07/2018 9:35 am

Re: การนำไฟล์ PDF มาแสดงบน web browser

โพสต์ที่ยังไม่ได้อ่าน โดย tatiya »

jirawoot เขียน:
thatsawan เขียน:browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ
ได้ทุก browser ครับ
Firefox น่าจะเปิดเป็นหน้า pdf เลยไม่ได้นะครับ จากที่ผมทดสอบ มันจะเป็นการจะดาว์โหลดให้ครับ หรือว่าผมทำผิด 55555+
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: การนำไฟล์ PDF มาแสดงบน web browser

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

tatiya เขียน:
jirawoot เขียน:
thatsawan เขียน:browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ
ได้ทุก browser ครับ
Firefox น่าจะเปิดเป็นหน้า pdf เลยไม่ได้นะครับ จากที่ผมทดสอบ มันจะเป็นการจะดาว์โหลดให้ครับ หรือว่าผมทำผิด 55555+
ถ้าเราเปิดไม่ได้ มันต้องไปกำหนดอนุญาตการเปิดไฟล์ก่อน
รูปภาพ
ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

Re: การนำไฟล์ PDF มาแสดงบน web browser

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

ขอบคุณครับ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 39