swift 上传图片和参数 upload image with params
来源:互联网 发布:网站系统源码大全 编辑:程序博客网 时间:2024/06/10 07:39
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)}
1 0
- swift 上传图片和参数 upload image with params
- Upload上传+Image压缩
- react-core-image-upload:轻量级的图片上传裁剪组件
- Image / file upload with CodeIgniter
- 图片上传是出现Error setting expression 'upload' with value '
- PHP上传类 图片上传 upload class实现image crop resize 缩略图
- Js上传图片 jquery:ajaxfileupload和angular:angular-file-upload
- upload.js 文件图片上传
- Android Webview upload 图片上传
- vue-core-image-upload旋转图片功能
- swift 利用原生请求上传多张图片和多个参数到服务器
- swift post表单上传图片和数据
- swift-image上传图片时需要旋转在上传服务器代码
- Yii-upload- 用AJAX上传图片
- Angular-File-Upload-Qiniu上传图片至七牛
- Ajax Upload上传图片失败的解决方法:
- 取消 vue-core-image-upload 的默认上传
- 【Swift】上传图片-NSURLSession
- iOS:通知机制的详解与代码示例
- SDWebImage底层实现原理
- 进程与线程的区别于联系
- 利用web的curl命令进行HDFS操作
- Python 学习笔记 迭代器和生成器
- swift 上传图片和参数 upload image with params
- 第六周项目:分数类
- 第五周 项目2-游戏中的角色类(1)
- ACM第二次练习—1001
- 关于iOS中AES加密和base64编码的理解
- Zookeeper伪分布式安装
- 第六周项目4静态时间类
- centos6.4 安装R语言3.2.2
- JSP连接数据库实现注册登录(附带上传头像)