iOS file上传

作者: 码农淏 | 来源:发表于2017-08-03 10:05 被阅读21次

配置参数

let data = UIImageJPEGRepresentation(_uploadImage,0.8)!
        let params = ["biaot" : titleTextField.text!, "content" : textView.text, "type" : (adTypeBtn.titleLabel?.text)!] as [String : String]
        
        upload(address: Common.gggl(), data: data, param: params)

上传方法

 func upload(address: String,data: Data, param: [String : String]) {

        let model = XUserSaveSuccess.readUserInformation()
        
        let cookie = (model?.session_name)! + "=" + (model?.sessid)!//[NSString stringWithFormat:@"%@=%@", sessionName, sessid];
        let headers = ["Accept" : "application/json", "Content-Type" : "application/json", "Cookie" : cookie, "X-CSRF-Token" : model?.token!]
        printLog(headers)
        
        showHud(in: view, hint: nil, yOffset: 0)
        Alamofire.upload(multipartFormData: { (multipartFormData) in
            
            let imageName = String(describing: NSDate()) + ".png"
            
            //multipartFormData.appendBodyPart(data: ,name: ,fileName: ,mimeType: )这里把图片转为二进制,作为第一个参数
            multipartFormData.append(data, withName: "uploadfile", fileName: imageName, mimeType: "image/jpeg")
//            multipartFormData.append(URL(string: self.filePath!)!, withName: "image", fileName: "image.png", mimeType: "image/png")
            
            
            //把剩下的两个参数作为字典,利用 multipartFormData.appendBodyPart(data: name: )添加参数,
            //因为这个方法的第一个参数接收的是NSData类型,所以要利用 NSUTF8StringEncoding 把字符串转为NSData
            
            //遍历字典
            for (key, value) in param {
                multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
            }
        }, usingThreshold: 60, to: address, method: HTTPMethod.post, headers: headers as? HTTPHeaders) {[weak self] (encodingResult) in
            
            hideHud()
            
            switch encodingResult {
            case .success(let upload, _, _):
                upload.responseJSON(completionHandler: { (response) in
                    if let myJson:[String: String] = response.result.value as? [String : String] {
                        printLog(myJson)
                        printLog(response.result)
                        printLog(response.description)
                        printLog(response.debugDescription)
                        printLog(response.request)
                        printLog(response.response)
                        
                        if myJson["status"]! == "1" {
                            self?.navigationController?.popViewController(animated: true)
                            showHintInKeywindow(hint: "发布成功")
                        } else {
                            showHintInKeywindow(hint: "发布失败")
                        }
                    }
                })
            case .failure(let error):
                printLog(error)
                showHintInKeywindow(hint: "请检查您的网络")
            }
        }
        
    }

相关文章

  • iOS file上传

    配置参数 上传方法

  • 移动端图片批量上传问题

    一.操作系统 1.ios ios的操作系统: 实现图片批量上传,可以直接使用input type=file 加上m...

  • H5随笔

    H5兼容VIdeo H5让兼容安卓和IOS调用相机 移动端debug input file 拍照上传IOS图片旋转...

  • input上传图片

    1、上传文件 现在上传图片,基本采用的是上传file formData方式。一般上传blob对象和file对象都是...

  • file 上传

    ​由于最近使用vue+Element ui vue2.0中upload组件存在很多上传地址不可跨域,或者上传获取后...

  • file上传

    设置multiple属性后,只可以在电脑多图片上传,在手机无法多图片上传

  • ios 上传file类型图片

    图片一定要先压缩,转成data,不然就会报错 AFHTTPSessionManager*manager = [AF...

  • input

    input file - 文件上传

  • iOS 10.0 XCode 8.3 Release/Debug

    1: Create PCH File 1.1 File -> New -> File... 1.2 iOS -> ...

  • iOS - 分类与扩展的创建与区别

    分类的创建:File—>New—>File—>iOS Source—>Objective-C File ,File...

网友评论

    本文标题:iOS file上传

    本文链接:https://www.haomeiwen.com/subject/xlwulxtx.html