1

I'm trying to stream a request to FastAPI's UploadFile from a browser. I've been trying the example shown here.

fastapi

@router.put("/file")
def uploadFile(filename:str,files: List[UploadFile]=File(...)):

browser

let formData = new FormData();
let that=this
let stream=new ReadableStream({
    async start(controller){
        controller.enqueue(that.files[0])
        controller.close()
    }
})
formData.append("files",stream)
axios({
    url: this.$appConfig.file_url,
    method: 'put',
    data: formData,
    params:{'filename':filename},
    headers: {"Authorization":`Bearer ${this.$store.getters.token}`,"Content-Type":"Multipart/form-data"},
})

I get the following error:

"Expected UploadFile, received: <class 'str'>"

manbearpig
  • 143
  • 1
  • 7
  • Streaming is more of a concept server -> browser, not browser -> server. You are just making a PUT request, there is nothing streamingly about it I'd say. – JarroVGIT Oct 21 '22 at 15:42

0 Answers0