IOS – Videodatei konnte nicht von Swift in das FastAPI-Backend hochgeladen werdenPython

Python-Programme
Guest
 IOS – Videodatei konnte nicht von Swift in das FastAPI-Backend hochgeladen werden

Post by Guest »

Den Code zum Hochladen der Videodatei habe ich dieser Frage entnommen; Es tritt jedoch ein Fehler auf.
Dies ist der Code zum Auswählen eines Videos aus einem Album:

Code: Select all

var videoURL: URL?

extension ViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

picker.dismiss(animated: true, completion: nil)
if let pickedVideo = info[UIImagePickerController.InfoKey.mediaURL] as? URL {
videoURL = pickedVideo
}
Dies ist der Code zum Hochladen des Videos auf den Server:

Code: Select all

func uploadImage(imageURL: URL?) {

let URL = "http://127.0.0.1:8000/uploadfiles"
let header : HTTPHeaders = [
"Content-Type" : "application/json"]

let timestamp = NSDate().timeIntervalSince1970

AF.upload(multipartFormData: { multipartFormData in
multipartFormData.append(imageURL!, withName: "video", fileName: "\(timestamp).mp4", mimeType: "\(timestamp).mp4")

}, to: URL, usingThreshold: UInt64.init(), method: .post, headers: header).response { response in
guard let statusCode = response.response?.statusCode,
statusCode == 200
else { return }

@IBAction func ButtonClicked(_ sender: UIButton) {
do {
uploadImage(imageURL: videoURL!)

} catch {
}
}

Dies ist der FastAPI-Servercode:

Code: Select all

from fastapi import FastAPI, File, UploadFile
from typing import List
import os

app = FastAPI()

@app.get("/")
def read_root():
return { "Hello": "World" }

@app.post("/files/")
async def create_files(files: List[bytes] = File(...)):
return {"file_sizes": [len(file) for file in files]}

@app.post("/uploadfiles")
async def create_upload_files(files: List[UploadFile] = File(...)):
print('here')
UPLOAD_DIRECTORY = "./"
for file in files:
contents = await file.read()
with open(os.path.join(UPLOAD_DIRECTORY, file.filename), "wb") as fp:
fp.write(contents)
print(file.filename)
return {"filenames": [file.filename for file in files]}
Das ist der Fehler:

Code: Select all

INFO:     127.0.0.1:65191 - "POST /uploadfiles HTTP/1.1" 422 Unprocessable Entity

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post