上传头像 swift 4.2

extension UploadImageViewController: UIImagePickerControllerDelegate {
    // 用户选取图片之后
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        // 参数 UIImagePickerControllerOriginalImage 代表选取原图片,这里使用 UIImagePickerControllerEditedImage 代表选取的是经过用户拉伸后的图片。
        if let pickedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
            // 这里对选取的图片进行你需要的操作,通常会调整 ContentMode。
            self.hederImageView.image = pickedImage
            
            self.uploadUserIcon(fileName: "header.jpg", imgData: pickedImage.pngData()! as NSData)
        }
        // 必须写这行,否则拍照后点击重新拍摄或使用时没有返回效果。
        picker.dismiss(animated: true, completion: nil)
    }
    typealias UploadUserIconSuccess = (_ dict:[String : Any]) -> Void//成功block
    typealias FailedBlock = (_ dict:[String : Any]) -> Void
    
}

func uploadUserIcon(fileName: String, imgData: NSData) {
        let urlStr = "【服务器IP】"
        
        //请求头
        //  let localToken = Bool.readFromUserDefault(key: localToken)!
        // 头部需要的内容包装
        
        
        
        let headers: HTTPHeaders = [
            "Accept": "application/json;charset=utf-8",
            "lang":"en-US",
            // "token": localToken
        ]
        // let image = UIImage(named: "xxx")
        
        let defaultStand = UserDefaults.standard
        let uid:String = defaultStand.object(forKey: AccountInfo().id) as! String
        
        Alamofire.upload(multipartFormData: { (formData) in
            // 参数解释:
            //withName:和后台服务器的name要一致 ;fileName:可以充分利用写成用户的id,但是格式要写对; mimeType:规定的,要上传其他格式可以自行百度查一下
            formData.append(uid.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!, withName: "id")
            formData.append(imgData as Data, withName: "file", fileName: fileName, mimeType:"multipart/form-data")
            
            //如果需要上传多个文件,就多添加几个append,或则for-in语句进行循环处理
            // formData.append(imgData as Data, withName: "fname", fileName: fileName, mimeType:"image/jpeg")
            //  formData.append(imgData as Data, withName: "fname", fileName: fileName, mimeType:"image/jpeg")
        }, usingThreshold: (10*160*160), to: URL.init(string: urlStr)!, method: HTTPMethod.post,headers: headers) { (encodingResult) in
            switch encodingResult {
            case .success(let upload, _, _):
                upload.responseJSON { response in
                    if let jsonValue = response.result.value {
                        let json = JSON(jsonValue)
                        print("上传头像json:\(json)")
                        
                    }
                }
            case .failure(_):
                print("")
            }
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值