gpt4 book ai didi

ios - 使用 Alamofire 4 将照片上传到 Swift 3 中的 Django?

转载 作者:搜寻专家 更新时间:2023-11-01 06:03:52 25 4
gpt4 key购买 nike

我似乎无法将照片正确上传到 Django。这就是问题所在。

request.FILES 为空。但是,在正文中我看到了一堆乱码(可能是照片数据)。我试过这个让它工作,但它仍然显示为空:

在 Django 中:

class UploadPhoto(APIView):
parser_classes = (MultiPartParser, FormParser, )
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
def post(self, request, format=None):
print(request.FILES)
return Response(status=status.HTTP_200_OK)

在 iOS 中:

    func photoUploader(photo: UIImage,  completion: @escaping (Bool) -> Void) {
let imageData = UIImageJPEGRepresentation(photo, 0.8)

guard let authToken = Locksmith.loadDataForUserAccount(userAccount: "userToken")?["token"] as? String else {
return
}

let headers: HTTPHeaders = ["Authorization": authToken]
var url: URLRequest?

do {
url = try URLRequest(url: EntityURLs.uploadPhotoURL, method: .post, headers: headers)
} catch {
print("Error")
}

if let url = url {
upload(multipartFormData: { (mpd) in
mpd.append(imageData!, withName: "file", mimeType: "image/jpeg")
}, with: url, encodingCompletion: { (success) in
debugPrint(success)
})
}

}

最佳答案

好的,为了使用 Alamofire 4.0 框架将文件正确上传到 Django,我忘记添加一件事:文件名。

在我的例子中,我正在上传“weeknd.jpg”所以我必须改变这个:

 mpd.append(imageData!, withName: "file", mimeType: "image/jpeg")

为此:

mpd.append(imageData, withName: "file", fileName: "weeknd.jpg", mimeType: "image/jpeg")

在 Django 中,request.FILES现在显示为:<MultiValueDict: {'file': [<InMemoryUploadedFile: weeknd.jpg (image/jpeg)>]}>

我几乎忘了添加文件名。希望这会对某人有所帮助。

关于ios - 使用 Alamofire 4 将照片上传到 Swift 3 中的 Django?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42642235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com