ios - 如何使用 Swift 将多张图片上传到服务器?

标签 ios swift nsurlconnection

fun UploadRequest()
{
    if (photoArray.count > 0)
    {
        for var i=0 ; i < photoArray.count; i++
        {
            print(photoArray)
            let image = (photoArray[i] as? UIImage)!
            let imageData = UIImagePNGRepresentation(image)
            if imageData != nil{
            let request = NSMutableURLRequest(URL: NSURL(string:"MY_URL")!)
            _ = NSURLSession.sharedSession()
            request.HTTPMethod = "POST"
            let boundary = NSString(format: "---------------------------14737809831466499882746641449")
            let contentType = NSString(format: "multipart/form-data; boundary=%@",boundary)
            request.addValue(contentType as String, forHTTPHeaderField: "Content-Type")
            let body = NSMutableData()
            body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
            body.appendData(NSString(format:"Content-Disposition: form-data; name=\"profile_photo\"; filename=\"(Image_Name)\"\\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
            body.appendData(NSString(format: "Content-Type: application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
            body.appendData(imageData!)
            body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)

            request.HTTPBody = body

        do {
            let returnData = try NSURLConnection.sendSynchronousRequest(request, returningResponse: nil)
                    let returnString = NSString(data: returnData, encoding: NSUTF8StringEncoding)
                    print("returnString \(returnString)")
                    }
                    catch let error as NSError {
                    print(error.localizedDescription)
                                            }
            }
          task.resume()
       }
    }
}

我使用了这段代码,但它不起作用。给我文件位置空。 在这里,我选择图像并存储在数组中,然后我从数组上传图像。 我在发送图像的地方使用 .php url。

最佳答案

您可以使用 Alamofire 仅使用 URL 将图像上传到服务器

let imageData = UIPNGRepresentation(image)!

Alamofire.upload(imageData, to: "https://httpbin.org/post").responseJSON { response in
    debugPrint(response)
} 

随时提出修改建议以使其变得更好。

关于ios - 如何使用 Swift 将多张图片上传到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403396/

相关文章:

ios - Xamarin.iOS:NSTemporaryDirectory()

swift - 对 Swift 中可以和数组或单个元素进行解码的 JSON 数据很热门?

ios - NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)

nsurlconnection - 异步 NSURLConnection 方案教程

iOS - 应用商店版本与本地安装版本的行为不同

iphone - XCode 5 工作区工具栏中的管理器和断点按钮在哪里?

ios - CloudKit 问题 : did not find required record type

swift - UIWebview 崩溃,错误为 :EXC_BREAKPOINT (CODE=EXC_I386_BPT, SUBCODE = 0X0)

Swift - 图像上的 cornerRadius 不起作用

ios - 清除 NSURLSession 缓存