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

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

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

ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

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

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

สอบถามการใส่ การจัดการไฟล์ในส่วนของ เว็บเซอร์วิส คือการทำงาน จะมีการ Input ไฟล์ ผ่านตัว HTML ไปยังเว็บเซอร์วิส
ทดสอบการส่งค่าโดย การให้ Return ชื่อไฟล์ที่ Input เข้าไป ผลที่ได้
โค้ด HTML

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sample Form</title>
</head>
<body>
    <form action="/files/" enctype="multipart/form-data" method="post">
        <input name="files" type="file" accept=".pdf" multiple>
        <input type="submit">
    </form>
</body>
</html>
โค้ด ส่วนของ FastAPI

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

from fastapi import FastAPI, Request, File, UploadFile, Form
from fastapi.responses import HTMLResponse
from typing import List
from fastapi.templating import Jinja2Templates
import uvicorn

app =FastAPI()
templates = Jinja2Templates(directory="templates")

@app.get("/Sample Form/", response_class=HTMLResponse)
def index(request: Request):
    context = {'request':request}
    return templates.TemplateResponse("form.html",context)

@app.post("/files/")
async def create_upload_files(files: List[UploadFile] = File(description="Multiple files as UploadFile")):
    return {'filenames': file.filename for file in files}
    
if __name__ == '__main__':
uvicorn.run(app, host='127.0.0.1', port=8000, debug=True)
ทดสอบการส่งค่าโดย การให้ Return ชื่อไฟล์ที่ Input เข้าไป ผลที่ได้
  • ทำการเลือกไฟล์ที่ต้องการ
    ทำการเลือกไฟล์ที่ต้องการ.png
    ทำการเลือกไฟล์ที่ต้องการ.png (7.81 KiB) Viewed 3115 times
  • มีการ return ชื่อไฟล์ที่ Input เข้าไป
    return ชื่อไฟล์ที่เรา Input เข้าไป.png
    return ชื่อไฟล์ที่เรา Input เข้าไป.png (6.88 KiB) Viewed 3115 times
สิ่งที่ต้องการคือต้องการแปลงไฟล์ที่ได้มีการ Input เข้ามา แปลงไปเป็น ไฟล์ภาพ โดยมีโค้ดในส่วนการแปลงไฟล์คือ
โค้ดแปลงไฟล์ภาพ

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

import subprocess
                                           
process = subprocess.Popen(r"Magick convert C:/Users/fonfo/Downloads/test/lernpython.pdf  C:/Users/fonfo/Downloads/test/lernpython.png", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
อยากสอบถามว่า หากเราต้องการให้ผู้ใช้ แปลงไฟล์ PDF ที่ Input เข้ามา เป็นไฟล์ภาพ โดยให้ผู้ใช้งานสามารถดาวน์โหลดไฟล์ที่แปลงแล้วได้ ต้องมีการจัดการไฟล์ในส่วนไหน หรือมีตัวอย่างการใช้งานการจัดการไฟล์ประมาณนี้ รบกวนขอตัวอย่างหรือแนะนำทีค่ะ
you're the only one treasure💎
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41129
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

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

Webservice ใช้ ninja ทำอะไรครับ

การทำ web service ทำตัว api ทดสอบด้วย postman ก่อนทำ ฟอร์มาส่งค่าให้ webservice ด้วย javascript
ใช้ javascript แปลงไฟล์เป็น base64 แล้วเรียกใช้ api ให้ทำงาน
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

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

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

สอบถามเพิ่มเติมนะคะ ที่เข้าใจตัวงานคือ แบบเราสร้างฟอร์มมารับ input แล้วส่ง input นั้นไป แปลงไฟล์ ตอนนี้เลยเข้าใจว่าจะเป็นการแปลงไฟล์ในส่วน fastAPI
ซึ่งผิดรูปแบบการใช้งาน Webservice สามารถแก้ไขให้ถูกทางคือยังไงคะ ต้องแก้ไขแบบไหนประมาณไหนคะ
you're the only one treasure💎
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41129
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

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

ถ้าสร้าง web service ทำงานเป็น API ด้วย fastAPI เมื่อสร้างเสร็จทดสอบด้วย postman response ออกมาเป็น json
เพื่อต่อไปถ้าทดสอบด้วย postman ผ่านแล้ว จะเรียกใช้ html + javascript หรือ java ทำฟอร์มบน android แล้วมาเรียกใช้ API ตัวนี้ก็จะง่าย
หรือจะทำเรียกใช้ด้วย php, python อะไรต่อก็จะทำได้ง่าย
ลองดูบทความสอนที่นี่ประกอบ
https://www.mindphp.com/บทเรียนออนไลน์/ ... stapi.html
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

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

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

mindphp เขียน: 06/08/2022 1:32 pm ถ้าสร้าง web service ทำงานเป็น API ด้วย fastAPI เมื่อสร้างเสร็จทดสอบด้วย postman response ออกมาเป็น json
เพื่อต่อไปถ้าทดสอบด้วย postman ผ่านแล้ว จะเรียกใช้ html + javascript หรือ java ทำฟอร์มบน android แล้วมาเรียกใช้ API ตัวนี้ก็จะง่าย
หรือจะทำเรียกใช้ด้วย php, python อะไรต่อก็จะทำได้ง่าย
ลองดูบทความสอนที่นี่ประกอบ
https://www.mindphp.com/บทเรียนออนไลน์/ ... stapi.html
ขอบคุณค่ะ จะทำความเข้าใจและจะปรับแก้งานตามที่แนะนำนะคะ
you're the only one treasure💎
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25365
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

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

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

mindphp เขียน: 06/08/2022 10:24 am Webservice ใช้ ninja ทำอะไรครับ

การทำ web service ทำตัว api ทดสอบด้วย postman ก่อนทำ ฟอร์มาส่งค่าให้ webservice ด้วย javascript
ใช้ javascript แปลงไฟล์เป็น base64 แล้วเรียกใช้ api ให้ทำงาน

สอบถามค่ะ เราจะไม่รับเป็น file ของ fastapi ด้วย File, UploadFile ใช่มั้ยคะ
แต่จะให้ javascript แปลงไฟล์เป็น base64 แทนแล้วฝั่ง webservice รับเป็น str อย่างนี้หรอคะ

จาก

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

from fastapi import FastAPI, Request, File, UploadFile, Form

app =FastAPI()

@app.post("/files/")
async def create_upload_files(files: List[UploadFile] = File(description="Multiple files as UploadFile")):
    return {'filenames': file.filename for file in files}
เป็น

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

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

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

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

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

ใช่ค่ะ
เหตุผล UploadFile เป็นลักษณะของการทำ form เอง
การทำ webservice เราจะไม่ทำ form ให้กับ webservice แต่เราจะทำจากลักษณะที่สามารถส่งค่ามาจากที่ไหนก็ได้ค่ะ
โดยเวลาจะส่งไฟล์ไป webservice เราจะแปลงเป็น base64 ก่อนแล้วค่อยส่ง ไป webservice
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

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

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

bolue เขียน: 08/08/2022 6:47 pm
mindphp เขียน: 06/08/2022 10:24 am Webservice ใช้ ninja ทำอะไรครับ

การทำ web service ทำตัว api ทดสอบด้วย postman ก่อนทำ ฟอร์มาส่งค่าให้ webservice ด้วย javascript
ใช้ javascript แปลงไฟล์เป็น base64 แล้วเรียกใช้ api ให้ทำงาน

สอบถามค่ะ เราจะไม่รับเป็น file ของ fastapi ด้วย File, UploadFile ใช่มั้ยคะ
แต่จะให้ javascript แปลงไฟล์เป็น base64 แทนแล้วฝั่ง webservice รับเป็น str อย่างนี้หรอคะ

จาก

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

from fastapi import FastAPI, Request, File, UploadFile, Form

app =FastAPI()

@app.post("/files/")
async def create_upload_files(files: List[UploadFile] = File(description="Multiple files as UploadFile")):
    return {'filenames': file.filename for file in files}
เป็น

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

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

สอบถามแบบไม่รู้เลยเช่นเดิมนะคะ
คำถามที่ 1. เราจะใช้โค้ดนี้เพราะเราจะสามารถรับการรีเควสจาก html + javascript ได้ใช่ไหมคะ

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

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
คำถามที่ 2.เราใส่การจัดการไฟล์ตรงส่วนไหนคะ ตอนนี้ติดตรงนี้ค่ะ แบบว่าไปต่อไม่ถูกว่า เราจะรับไฟล์เข้ามาแล้วแปลงไฟล์ยังไงค่ะ คือถ้าเรามีโค้ดการแปลงไฟล์คือ(เท่าที่มีตอนนี้นะคะ)

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

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()
ในการทำส่วน API ที่ให้สามารถแปลงไฟล์ได้นี่ต้องทำแบบไหนคะ ตอนนี้ติดตรงนี้ค่ะ ทำฝั่ง webservice ก่อน แล้วทดสอบกับ postman คือไปต่อไม่ถูกค่ะ ขอคำแนะนำหรือตัวอย่างการทำงานลักษณะนี้ได้ไหมคะ ตอนนี้ไปต่อไม่ถูกค่ะ
you're the only one treasure💎
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25365
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

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

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

คำถามที่ 1. เราจะใช้โค้ดนี้เพราะเราจะสามารถรับการรีเควสจาก html + javascript ได้ใช่ไหมคะ
ค่ะ ทาง javascript จะแปลง file pdf เป็น base64 แล้วส่งไป webservice ค่ะ
คำถามที่ 2.เราใส่การจัดการไฟล์ตรงส่วนไหนคะ ตอนนี้ติดตรงนี้ค่ะ แบบว่าไปต่อไม่ถูกว่า เราจะรับไฟล์เข้ามาแล้วแปลงไฟล์ยังไงค่ะ คือถ้าเรามีโค้ดการแปลงไฟล์คือ(เท่าที่มีตอนนี้นะคะ)
หลีงจากได้ base64 มา เราสามารถเอา base64 มาบันทึกไฟล์เป็น pdf ได้ และหลังจากนั้นค่อยทำการแปลงไฟล์ตาม code แปะมาค่ะ


ลองเอาไฟล์ pdf ไปแปลงเป็น base64 ตามออนไลน์ก่อนก็ได้ค่ะ แล้วเอา base64 นั้นมาทดสอบ webservice ใน postman
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

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

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

bolue เขียน: 09/08/2022 11:24 am
คำถามที่ 1. เราจะใช้โค้ดนี้เพราะเราจะสามารถรับการรีเควสจาก html + javascript ได้ใช่ไหมคะ
ค่ะ ทาง javascript จะแปลง file pdf เป็น base64 แล้วส่งไป webservice ค่ะ
คำถามที่ 2.เราใส่การจัดการไฟล์ตรงส่วนไหนคะ ตอนนี้ติดตรงนี้ค่ะ แบบว่าไปต่อไม่ถูกว่า เราจะรับไฟล์เข้ามาแล้วแปลงไฟล์ยังไงค่ะ คือถ้าเรามีโค้ดการแปลงไฟล์คือ(เท่าที่มีตอนนี้นะคะ)
หลีงจากได้ base64 มา เราสามารถเอา base64 มาบันทึกไฟล์เป็น pdf ได้ และหลังจากนั้นค่อยทำการแปลงไฟล์ตาม code แปะมาค่ะ


ลองเอาไฟล์ pdf ไปแปลงเป็น base64 ตามออนไลน์ก่อนก็ได้ค่ะ แล้วเอา base64 นั้นมาทดสอบ webservice ใน postman
สอบถามเพิ่มนะคะ
เราทำการรับไฟล์ pdf มา จากนั้น แปลงเป็น base64 เพื่อทำการส่งไป webservice ในส่วนนี้เราละไว้ก่อน มาทำในส่วน webservice ก่อน และจากที่เราได้นำไฟล์ pdf ที่ต้องการไปแปลงเป็น base64 แล้วเราจะเขียน API แบบไหนที่นำไปทดสอบใน postman คะ แบบขอตัวอย่างหรือไกด์เพิ่มเติมทีค่ะ คือไม่รู้ว่าจะนำ base64 มาทดสอบ webservice ใน postman ยังไงค่ะ
you're the only one treasure💎
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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