在Swift iOS中将UIImage上传到服务器

时间:2015-03-07 06:10:21

标签: ios swift uiimage

我正在编写以下方法来上传您服务器的图片。

func uploadImageOne(image: UIImageView){
        var imageData = UIImagePNGRepresentation(image.image)

        if imageData != nil{
            var request = NSMutableURLRequest(URL: NSURL(string:"http://abcd-site.com/sat/upload.aspx")!)
            var session = NSURLSession.sharedSession()

            request.HTTPMethod = "POST"

            var boundary = NSString(format: "---------------------------14737809831466499882746641449")
            var contentType = NSString(format: "multipart/form-data; boundary=%@",boundary)
            //  println("Content Type \(contentType)")
            request.addValue(contentType, forHTTPHeaderField: "Content-Type")

            var body = NSMutableData.alloc()

            // Title
            body.appendData(NSString(format: "\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
            body.appendData(NSString(format:"Content-Disposition: form-data; name=\"title\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
            body.appendData("Hello World".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)

            // Image
            body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
            body.appendData(NSString(format:"Content-Disposition: form-data; name=\"profile_img\"; filename=\"img.jpg\"\\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

            var returnData = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)

            var returnString = NSString(data: returnData!, encoding: NSUTF8StringEncoding)

            println("returnString \(returnString)")

        }

我收到了以下错误。

Optional(Error:The SaveAs method is configured to require a rooted path, and the path '~/ContentImages/ImagesDir/7ece04d7-ff77-4c2c-9ce2-df7e52098b7b.jpg' is not rooted.

错误的预期原因是什么?

它也会导致屏幕卡住,将UIImage上传到服务器的正确方法是什么。

由于

0 个答案:

没有答案