模块“ Alamofire”没有名为“ upload”的成员

时间:2019-11-15 14:22:27

标签: swift alamofire ios13

我正在尝试使用swift将图像上传到服务器。我用NSMutableURLRequest尝试了URLSession。我收到网络连接丢失。我认为简单地使用Alamofire是一种更好的方法,但是由于xcode找不到函数update而陷入了一个问题。

有人知道如何使用Alamofire上传图片吗?或找到更新功能?

alamofire的代码:

func uploadImageWithAlmofire(url: String) {
        let params: Parameters = ["name": "abcd", "gender": "Male"]
        Alamofire.upload(multipartFormData:
            {
                (multipartFormData) in
                multipartFormData.append(UIImageJPEGRepresentation(self.yourimageView.image!, 0.1)!, withName: "file", fileName: "file.jpeg", mimeType: "image/jpeg")
                for (key, value) in params
                {
                    multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
                }
        }, to:url,headers:nil)
        { (result) in
            switch result {
            case .success(let upload,_,_ ):
                upload.uploadProgress(closure: { (progress) in
                    //Print progress
                })
                upload.responseJSON
                    { response in
                        //print response.result
                        if response.result.value != nil
                        {
                            let dict :NSDictionary = response.result.value! as! NSDictionary
                            let status = dict.value(forKey: "status")as! String
                            if status=="1"
                            {
                              print("DATA UPLOAD SUCCESSFULLY")
                            }
                        }
                }
            case .failure(let encodingError):
                break
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

当您查看Uploading Data to a Server示例时,它使用AF而不是Alamofire

AF.upload(multipartFormData: { multipartFormData in
    multipartFormData.append(Data("one".utf8), withName: "one")
    multipartFormData.append(Data("two".utf8), withName: "two")
}, to: "https://httpbin.org/post")
    .responseJSON { response in
        debugPrint(response)
    }

答案 1 :(得分:0)

试试这个

AF.upload(multipartFormData: { multipartFormData in
        multipartFormData.append(Data(self.businessType.utf8), withName: "business_type")
        
        let theFileName1 = (self.doc1.absoluteString as NSString).lastPathComponent
        multipartFormData.append(self.doc1, withName: "key_value", fileName: theFileName1, mimeType: "image/png")
        
    }, to: "https://www.test_document.php") //POST URL
        .responseJSON { response in
            debugPrint(response)
        }