let docDir:AnyObject = NSSearchPathForDirectorIEsInDomains(.documentDirectory,.UserDomainMask,true)[0]let imagePath = docDir + "/myPic.jpg"var imageData = NSData(contentsOffile: imagePath,options: NSDataReadingOptions.DataReadingMappedIfSafe,error: nil)var parameters = [ "pic" :NetData(nsData: imageData!,filename: "customname.jpg"),"otherParm" :"Value" ] let urlRequest = self.urlRequestWithComponents("http://www.example.com/upload.PHP",parameters: parameters)
Alamofire.upload(urlRequest.0,urlRequest.1) .progress { (bytesWritten,totalBytesWritten,totalBytesExpectedToWrite) in println("\(totalBytesWritten) / \(totalBytesExpectedToWrite)") } }
func urlRequestWithComponents(urlString:String,parameters:NSDictionary) -> (URLRequestConvertible,NSData) { // create url request to send var mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: urlString)!) mutableURLRequest.httpMethod = Alamofire.Method.POST.rawValue //let boundaryConstant = "myRandomBoundary12345" let boundaryConstant = "NET-POST-boundary-\(arc4random())-\(arc4random())" let ContentType = "multipart/form-data;boundary="+boundaryConstant mutableURLRequest.setValue(ContentType,forhttpheaderFIEld: "Content-Type") // create upload data to send let uploadData = NSMutableData() // add parameters for (key,value) in parameters { uploadData.appendData("\r\n--\(boundaryConstant)\r\n".dataUsingEnCoding(NSUTF8StringEnCoding)!) if value is NetData { // add image var postData = value as NetData //uploadData.appendData("Content-disposition: form-data; name=\"\(key)\"; filename=\"\(postData.filename)\"\r\n".dataUsingEnCoding(NSUTF8StringEnCoding)!) // append content disposition var filenameClause = " filename=\"\(postData.filename)\"" let contentdispositionString = "Content-disposition: form-data; name=\"\(key)\";\(filenameClause)\r\n" let contentdispositionData = contentdispositionString.dataUsingEnCoding(NSUTF8StringEnCoding) uploadData.appendData(contentdispositionData!) // append content type //uploadData.appendData("Content-Type: image/png\r\n\r\n".dataUsingEnCoding(NSUTF8StringEnCoding)!) // mark this. let ContentTypeString = "Content-Type: \(postData.mimeType.getString())\r\n\r\n" let ContentTypeData = ContentTypeString.dataUsingEnCoding(NSUTF8StringEnCoding) uploadData.appendData(ContentTypeData!) uploadData.appendData(postData.data) }else{ uploadData.appendData("Content-disposition: form-data; name=\"\(key)\"\r\n\r\n\(value)".dataUsingEnCoding(NSUTF8StringEnCoding)!) } } uploadData.appendData("\r\n--\(boundaryConstant)--\r\n".dataUsingEnCoding(NSUTF8StringEnCoding)!) // return URLRequestConvertible and NSData return (Alamofire.ParameterEnCoding.URL.encode(mutableURLRequest,parameters: nil).0,uploadData)}总结
以上是内存溢出为你收集整理的swift 上传图片和参数 upload image with params全部内容,希望文章能够帮你解决swift 上传图片和参数 upload image with params所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)