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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: สอบถาม เกี่ยวกับ HTTP Header หน่อยครับ

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

โดย mindphp » 02/07/2019 2:14 pm

header ยังไม่ถูก ถ้า ระบุ header ถูก บน browser จะไม่แสดงข้อความออกมา ครับ
และ base64 มาจากไหน ไม่น่าเกี่ยวกับ ปัญหานี้

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

โดย jirawoot » 02/07/2019 12:17 pm

mindphp เขียน:get_binary_pdf_data_from_database() เป็นส่วนการทำงาน เพื่อแปลงไฟล์ pdf เป็น binary

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

        with open("/home/com001/PycharmProjects/htmltoPdfImage2/pdf/test1.pdf", "rb") as pdf_file:
            encoded_string = base64.b64encode(pdf_file.read())
ผมลอง return ค่าออกมาดูจะได้แบบนี้ถูกไหมครับ
Selection_004.png

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

โดย jirawoot » 02/07/2019 11:30 am

mindphp เขียน:get_binary_pdf_data_from_database() เป็นส่วนการทำงาน เพื่อแปลงไฟล์ pdf เป็น binary
จะต้องแปลง pdf เป็น binary อีกทีใช่ไหมครับ

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

โดย mindphp » 02/07/2019 11:13 am

get_binary_pdf_data_from_database() เป็นส่วนการทำงาน เพื่อแปลงไฟล์ pdf เป็น binary

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

โดย jirawoot » 02/07/2019 11:10 am

mindphp เขียน:ตัวอย่าง flask กำหนด headers เอง

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

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
ส่วนสำคัญคือตรงนี้

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

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

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

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

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

โดย thatsawan » 02/07/2019 10:26 am

mindphp เขียน:ตัวอย่าง flask กำหนด headers เอง

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

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
ส่วนสำคัญคือตรงนี้

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

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

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

โดย mindphp » 02/07/2019 10:23 am

ตัวอย่าง flask กำหนด headers เอง

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

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
ส่วนสำคัญคือตรงนี้

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

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

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

โดย jirawoot » 02/07/2019 10:23 am

thatsawan เขียน:ตัวอย่างภาษา php
https://www.php.net/manual/fr/function.header.php

ถ้า python

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

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

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

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

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

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

โดย thatsawan » 02/07/2019 10:22 am

ตัวอย่างภาษา php
https://www.php.net/manual/fr/function.header.php

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


หรือ

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

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

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

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

ข้างบน