无法在SwiftUI中使用多部分表单上载文件
我正在尝试使用多部分表单数据在swiftUI中上载一个文件 代码如下所示:无法在SwiftUI中使用多部分表单上载文件,swiftui,alamofire,multipartform-data,Swiftui,Alamofire,Multipartform Data,我正在尝试使用多部分表单数据在swiftUI中上载一个文件 代码如下所示: do { let data = try Data(contentsOf: url) AF.upload( multipartFormData: { multipartFormData in multipartFormData.append(data, wi
do {
let data = try Data(contentsOf: url)
AF.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(data, withName: "uploadedFile",fileName: "uploadedFile",mimeType: "text/plain")
}, to: "https://server.com/upload",headers: ["Authorization" : "Bearer \(API.shared.accessToken!)",
"Content-Type": "multipart/form-data"])
.responseDecodable(of: String.self ) { response in
debugPrint(response)
}
}
catch {
print("Error \(error)")
}
其中url是本地url,DocumentPickerViewController提供了
出于某种原因,服务器给出了一个错误消息,表示出现了问题。
这是我在查尔斯身上得到的回应:
这是我在《邮递员》杂志上得到的回复(有效):
我注意到postman在formdata中自动生成了Content-type参数(在这个测试中是一个图像,但它可以是任何文件类型)。默认情况下,Alamofire没有这样做,所以我在请求中添加了filename和mimetype(text/plain),但这不起作用
有什么想法吗?它在邮递员身上起作用。这是服务器问题还是前端问题?这段代码对我来说很有用,用于上传图像文件 我使用了
“application/x-www-form-urlencoded”
而不是“Content Type”:“multipart/form data”
let url=“url here”
let头:HTTPHeaders=[
“授权”:“此处为持票人代币”,
“接受”:“应用程序/x-www-form-urlencoded”
]
AF.upload(multipartFormData:{(multipartFormData)在
multipartFormData.append(imageData,名称为:“image”,文件名为:“image.png”,mimeType:“image/png”)
},to:url,method:.post,headers:headers)。validate(状态代码:200..这似乎可行,但是,我不能忽略mime类型。我可以确定吗?@user3641520您可以使用以下列表中的一个:
let url = "url here"
let headers: HTTPHeaders = [
"Authorization": "Bearer Token Here",
"Accept": "application/x-www-form-urlencoded"
]
AF.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(imageData, withName: "image" ,fileName: "image.png" , mimeType: "image/png")
}, to: url, method: .post ,headers: headers).validate(statusCode: 200..<300).response { }