Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在SwiftUI中使用多部分表单上载文件_Swiftui_Alamofire_Multipartform Data - Fatal编程技术网

无法在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

我正在尝试使用多部分表单数据在swiftUI中上载一个文件 代码如下所示:

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 { }