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

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

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

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

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

โพสต์โดย jirawoot » 01/07/2019 4:00 pm

การนำไฟล์ 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) เปิดดู 235 ครั้ง

หน้าhtml
Selection_011.png
Selection_011.png (4.49 KiB) เปิดดู 235 ครั้ง

แสดง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
โพสต์: 17688
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์โดย thatsawan » 02/07/2019 10:13 am

browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ

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

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

โพสต์โดย jirawoot » 02/07/2019 10:16 am

thatsawan เขียน:browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ

ได้ทุก browser ครับ

ภาพประจำตัวสมาชิก
tatiya
PHP VIP Members
PHP VIP Members
โพสต์: 2617
ลงทะเบียนเมื่อ: 09/07/2018 9:35 am

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

โพสต์โดย tatiya » 04/07/2019 3:46 pm

jirawoot เขียน:
thatsawan เขียน:browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ

ได้ทุก browser ครับ


Firefox น่าจะเปิดเป็นหน้า pdf เลยไม่ได้นะครับ จากที่ผมทดสอบ มันจะเป็นการจะดาว์โหลดให้ครับ หรือว่าผมทำผิด 55555+
รูปภาพ รูปภาพ รูปภาพ

ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 17688
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์โดย thatsawan » 04/07/2019 3:52 pm

tatiya เขียน:
jirawoot เขียน:
thatsawan เขียน:browser อะไรค่ะ Firefox ทำได้หรือป่าวค่ะ

ได้ทุก browser ครับ


Firefox น่าจะเปิดเป็นหน้า pdf เลยไม่ได้นะครับ จากที่ผมทดสอบ มันจะเป็นการจะดาว์โหลดให้ครับ หรือว่าผมทำผิด 55555+


ถ้าเราเปิดไม่ได้ มันต้องไปกำหนดอนุญาตการเปิดไฟล์ก่อน
รูปภาพ

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

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

โพสต์โดย jirawoot » 04/07/2019 4:03 pm

ขอบคุณครับ


ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 13 และ บุคคลทั่วไป 0 ท่าน