สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

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

ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

ก่อนอื่นลองเขียน API ที่เราจะต้องการทดสอบโดย Postman ครับ
จากตัวอย่าง API ที่แปะมานี่ อันนี้จะมีการรับค่ามาเป็นตัวของตัวอักษรใช่ไหมครับ

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

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

Class Pdf_base64(BaseModel):
   pdf_base64: str

@app.post('/api_pdf')
async def read_pdf(request: Pdf_base64):
   return request.pdf_base64
ขอดูตัวอย่างของ base64 ที่แปลงมาจาก PDF หน่อยครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

wkid เขียน: 09/08/2022 3:32 pm ก่อนอื่นลองเขียน API ที่เราจะต้องการทดสอบโดย Postman ครับ
จากตัวอย่าง API ที่แปะมานี่ อันนี้จะมีการรับค่ามาเป็นตัวของตัวอักษรใช่ไหมครับ

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

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

Class Pdf_base64(BaseModel):
   pdf_base64: str

@app.post('/api_pdf')
async def read_pdf(request: Pdf_base64):
   return request.pdf_base64
ขอดูตัวอย่างของ base64 ที่แปลงมาจาก PDF หน่อยครับ
ส่วนของ base64 ที่แปลงมาจาก PDF นะคะ เป็นการแปลงไฟล์ pdf ไปเป็น base64 ตามออนไลน์
lernpython.txt
(189.61 KiB) ดาวน์โหลดแล้ว 68 ครั้ง
you're the only one treasure💎
ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

โอเคครับ ก็สามารถนำตัวอย่างที่แปลงมาจะเห็นได้ว่าแปลงเป็นตัวอักษรนะครับ ดังนั้นก็สามารถส่งไปที่ตัว api แล้วทดสอบการแปลงได้เลยครับ เราอยากให้ api มีการจัดการแบบไหนกับตัวของ base64 ก็สามารถทำเพิ่มเติมในส่วนของฟังก์ชั่นได้เลยครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

ต้องถามว่าจะให้ api จัดกการยังไงกับตัว base64 ที่ได้รับมาครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

wkid เขียน: 09/08/2022 3:50 pm โอเคครับ ก็สามารถนำตัวอย่างที่แปลงมาจะเห็นได้ว่าแปลงเป็นตัวอักษรนะครับ ดังนั้นก็สามารถส่งไปที่ตัว api แล้วทดสอบการแปลงได้เลยครับ เราอยากให้ api มีการจัดการแบบไหนกับตัวของ base64 ก็สามารถทำเพิ่มเติมในส่วนของฟังก์ชั่นได้เลยครับ
สอบถามเพิ่มนะคะ คือที่ต้องการเลยคือ แบบว่าจะให้ API จัดการกับไฟล์ base64 ยังไงค่ะ แล้วก็จะนำไปทดสอบกับ postman ยังไงค่ะ คือถ้าเรามีโค้ดแปลงไฟล์อยู่แล้วจะเรียกใช้งานโค้ดนั้นในส่วน API ยังไงประมาณนี้ค่ะ
คืออธิบายแบบที่ต้องการเลยนะคะ ไม่รู้ว่าหลักการทำงานถูกไหม คือเรามีโค้ดแปลงไฟล์ และต้องการ เรียกใช้งานฟังก์ชันในนั้นส่วน ของ API และนำไปทดสอบกับ postman มันสามารถทำได้ยังไงคะ

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

import subprocess

process = subprocess.Popen(r"Magick convert C:\Users\USER\Desktop\LOADING.pdf C:\Users\USER\Desktop\a.png", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
you're the only one treasure💎
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

สอบถามเพิ่มนะคะ คือที่ต้องการคือ แบบว่าจะให้ API จัดการกับไฟล์ base64 ยังไง โดย

1. แปลงไฟล์ base64 มาบันทึกไฟล์เป็น pdf สามารถใช้โค้ดแบบไหนในส่วนนี้ค่ะ

2. เราจะเรียกใช้งาน ฟังก์ชันในส่วน API ยังไงค่ะ เช่น ถ้าเราได้โค้ดในการแปลงไฟล์ base64 มาบันทึกไฟล์เป็น pdf แล้ว แล้วเราจะเรียกใช้งานโค้ดนั้นในส่วน API ยังไงคะ
ในที่นี้เราจะมีการเรียกใช้งาน 2 อย่างค่ะ คืออยากให้ API เรียกใช้งานฟังก์ชัน แปลงไฟล์ base64 มาบันทึกไฟล์เป็น pdf จากนั้นจะทำการนำ ไฟล์ pdf ที่แปลงมามาแปลงเป็นไฟล์ภาพอีกที ตามโค้ดการแปลงไฟล์

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

import subprocess

process = subprocess.Popen(r"Magick convert C:\Users\USER\Desktop\LOADING.pdf C:\Users\USER\Desktop\a.png", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
you're the only one treasure💎
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25363
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

ทำในฟังก์ชั่นเดิมค่ะ ก่อน return
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25363
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

การแปลง base64 to pdf file ค่ะ
pdf_report_path คือ path ที่ต้องการเอาไฟล์ไปเก็บ + ชื่อไฟล์ค่ะ

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

		import base64
                with open(pdf_report_path, 'wb') as theFile:
                    theFile.write(base64.b64decode(base64))
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส ในภาษา python

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

สามารถทำการใส่การจัดการไฟล์ในส่วนของ API ในการแปลงไฟล์ PDF เป็นภาพได้แล้วค่ะ โดย

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

from fastapi import FastAPI, Request
from pydantic import BaseModel
import uvicorn
import base64
import subprocess

app =FastAPI()

class Pdf_base64(BaseModel): #สร้างคลาสเพื่อรับ bastุุุ64 ในรูปแบบ str
       pdf_base64: str
       
@app.post('/api_pdftopic')
async def read_pdf(request: Pdf_base64):
#ในส่วนนี้จะเป็นการแปลงไฟล์จาก base64 ไปเป็น PDF
    with open(r'C:\Users\fonfo\pdf-toolkits\lernpython.pdf', 'wb') as theFile:
        theFile.write(base64.b64decode(request.pdf_base64))
#ในส่วนนี้จะเป็นการแปลงไฟล์จาก PDF ไปเป็น ภาพ
    process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\lernpython.pdf C:\Users\fonfo\pdf-toolkits\lernpython.jpg", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = process.communicate()
    return "success"  #เมื่อสำเร็จให้ทำการแสดงข้อความว่า success
       
ผลลัพธ์ที่ได้
จะมีไฟล์ PDF และไฟล์ ภาพตามโค้ดดิ้งที่ได้โค้ดไว้ด้านบนโดยไฟล์ PDFจะมีชื่อว่า lernpython.pdf และไฟล์ภาพที่แปลงมาจะมีชื่อว่า lernpython.jpg
สามารถทดสอบใน postman คือ นำ url http ://127.0.0.1:8000/api_pdftopic ไปทดสอบ และใส่ base64 ที่มีตามภาพด้านล่าง จากนั้นกด send
นำ URL ไปทดสอบใน Postman.png
นำ URL ไปทดสอบใน Postman.png (24.64 KiB) Viewed 895 times
จะมีข้อความ success แปลว่าไฟล์ได้ทำการถูกสร้างสำเร็จแล้ว
ข้อความ success.png
ข้อความ success.png (9.13 KiB) Viewed 895 times
เมื่อกลับมาดูที่โฟร์เดอร์จะพบไฟล์ 2 ไฟล์ที่ถูกสร้างขึ้น โดยมีไฟล์ PDF ที่แปลงจาก base64 และไฟล์ ภาพที่แปลงจาก ไฟล์ PDF
เมื่อกลับมาดูที่โฟร์เดอร์จะไฟล์ 2 ไฟล์ที่ถูกสร้างขึ้น.png
เมื่อกลับมาดูที่โฟร์เดอร์จะไฟล์ 2 ไฟล์ที่ถูกสร้างขึ้น.png (3.16 KiB) Viewed 895 times
you're the only one treasure💎
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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