Page 1 of 2

สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 10:03 am
by jirawoot
ตอนนี้ผมจะทำ wed service แปลง html เป็นไฟล์ PDF
แล้วผมอยากให้ไฟล์ PDF มาโชว์บน web browser โดยส่งผ่าน HTTPHeader แนะนำแนวทางการศึกษาหน่วยครับ
Selection_002.png

Re: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 10:22 am
by thatsawan
ตัวอย่างภาษา php
https://www.php.net/manual/fr/function.header.php

ถ้า python ลองตามนี้


หรือ

Code: Select all

import json
from flask import Flask, request, jsontify

app = Flask(__name__)

@app.route('/api/my_json', methods=['GET', 'POST])
def my_json():
    if request.method == 'POST':
        data = {
            'text': 'Hello, AdaBrain',
            'user': 'It\'s me Ada'
        }
                                    
        response = app.response_class(
            response=json.dumps(data),
        mimetype='application/json'
        )                                    
        return response
                                    
return '200'  
ตัวอย่างนี้จะ จะส่งออกมาเป็น json

Code: Select all

response = app.response_class(
    		response=json.dumps(data),
		mimetype='application/json'
    	)	
ลองเปลี่ยนเป็น PDF ดูว่าจะได้มั้ย mimetype='application/pdf'

Re: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 10:23 am
by jirawoot
thatsawan wrote:ตัวอย่างภาษา php
https://www.php.net/manual/fr/function.header.php

ถ้า python

Code: Select all

import json
from flask import Flask, request, jsontify

app = Flask(__name__)

@app.route('/api/my_json', methods=['GET', 'POST])
def my_json():
    if request.method == 'POST':
        data = {
            'text': 'Hello, AdaBrain',
            'user': 'It\'s me Ada'
        }
                                    
        response = app.response_class(
            response=json.dumps(data),
        mimetype='application/json'
        )                                    
        return response
                                    
return '200'
ตัวอย่างนี้จะ จะส่งออกมาเป็น json

Code: Select all

response = app.response_class(
    		response=json.dumps(data),
		mimetype='application/json'
    	)	
ลองเปลี่ยนเป็น PDF ดูว่าจะได้มั้ย mimetype='application/pdf'

หรือ ลองตามนี้
ขอบคุณครับผมจะศึกษาดู

Re: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 10:23 am
by mindphp
ตัวอย่าง flask กำหนด headers เอง

Code: Select all

from flask import make_response

@app.route('/docs/<id>')
def get_pdf(id=None):
    if id is not None:
        binary_pdf = get_binary_pdf_data_from_database(id=id)
        response = make_response(binary_pdf)
        response.headers['Content-Type'] = 'application/pdf'
        response.headers['Content-Disposition'] = \
            'inline; filename=%s.pdf' % 'yourfilename'
        return response
ส่วนสำคัญคือตรงนี้

Code: Select all

response.headers['Content-Type'] = 'application/pdf'

Re: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 10:26 am
by thatsawan
mindphp wrote:ตัวอย่าง flask กำหนด headers เอง

Code: Select all

from flask import make_response

@app.route('/docs/<id>')
def get_pdf(id=None):
    if id is not None:
        binary_pdf = get_binary_pdf_data_from_database(id=id)
        response = make_response(binary_pdf)
        response.headers['Content-Type'] = 'application/pdf'
        response.headers['Content-Disposition'] = \
            'inline; filename=%s.pdf' % 'yourfilename'
        return response
ส่วนสำคัญคือตรงนี้

Code: Select all

response.headers['Content-Type'] = 'application/pdf'
อันนี้เหมือนใน VDO น่าจะมาถูกทาง 555

Re: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 11:10 am
by jirawoot
mindphp wrote:ตัวอย่าง flask กำหนด headers เอง

Code: Select all

from flask import make_response

@app.route('/docs/<id>')
def get_pdf(id=None):
    if id is not None:
        binary_pdf = get_binary_pdf_data_from_database(id=id)
        response = make_response(binary_pdf)
        response.headers['Content-Type'] = 'application/pdf'
        response.headers['Content-Disposition'] = \
            'inline; filename=%s.pdf' % 'yourfilename'
        return response
ส่วนสำคัญคือตรงนี้

Code: Select all

response.headers['Content-Type'] = 'application/pdf'

Code: Select all

binary_pdf = get_binary_pdf_data_from_database(id=id)
response = make_response(binary_pdf)
 
ในส่วนนี้ id ต้องมาจาก database หรอครับ

Re: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 11:13 am
by mindphp
get_binary_pdf_data_from_database() เป็นส่วนการทำงาน เพื่อแปลงไฟล์ pdf เป็น binary

Re: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

Posted: 02/07/2019 11:30 am
by jirawoot
mindphp wrote:get_binary_pdf_data_from_database() เป็นส่วนการทำงาน เพื่อแปลงไฟล์ pdf เป็น binary
จะต้องแปลง pdf เป็น binary อีกทีใช่ไหมครับ