ios 拍照上传到服务器_如何在iOS中将图像数据上传到服务器?

I want to store my image data on server in iOS using swift. i tried following code, but its not working what changes i have to do ??

func myImageUploadRequest()

{

let myUrl = NSURL(string: "http://easemyshop.in/upload_test/new.php");

//let myUrl = NSURL(string: "http://easemyshop.in/upload_test/new.php");

let request = NSMutableURLRequest(url:myUrl! as URL);

request.httpMethod = "POST";

let param = [

"tag" : "all",

"count" : "1",

"shopname" : "MayurShop",

"partyName" : "Paras",

"cur_date" : "14-06-2017",

"due_date" : "20-06-2017",

"karagir" : "Santra",

"remark" : "Urgent",

"order_status" : "Order Reccived"

/*

"firstName" : "Mayur",

"lastName" : "Shinde",

"userId" : "101"

*/

]

let boundary = generateBoundaryString()

request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

let imageData = UIImageJPEGRepresentation((imageView?.image!)!, 1)

if(imageData==nil) { return; }

request.httpBody = createBodyWithParameters(parameters: param, filePathKey: "file", imageDataKey: imageData! as NSData, boundary: boundary) as Data

myActivityIndicator.isHidden = false

myActivityIndicator.startAnimating();

let task = URLSession.shared.dataTask(with: request as URLRequest)

{

data, response, error in

if error != nil

{

print("******** error=\(error)")

return

}

// You can print out response object

print("\n\n******* response *******\n\n")

print("\(response!)")

print("\n\n**************************\n\n")

// Print out reponse body

let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)

print("\n\n****** response data *******\n\n")

print("\(responseString!)")

print("\n\n**************************\n\n")

do

{

let json = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary

print("\n\n*************\n\n")

print(json!)

print("\n\n*************\n\n")

DispatchQueue.main.async(execute: {

self.myActivityIndicator.stopAnimating()

self.myActivityIndicator.isHidden = true

//self.imageView?.image = nil;

});

}

catch

{

print("\n\n*************ERROR******** => \(error)\n\n")

}

}

task.resume()

}

func createBodyWithParameters(parameters: [String: String]?, filePathKey: String?, imageDataKey: NSData, boundary: String) -> NSData {

let body = NSMutableData();

if parameters != nil {

for (key, value) in parameters! {

body.appendString(string: "--\(boundary)\r\n")

body.appendString(string: "Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")

body.appendString(string: "\(value)\r\n")

}

}

let filename = "user-profile.jpg"

let mimetype = "image/jpg"

body.appendString(string: "--\(boundary)\r\n")

body.appendString(string: "Content-Disposition: form-data; name=\"\(filePathKey!)\"; filename=\"\(filename)\"\r\n")

body.appendString(string: "Content-Type: \(mimetype)\r\n\r\n")

body.append(imageDataKey as Data)

body.appendString(string: "\r\n")

body.appendString(string: "--\(boundary)--\r\n")

return body

}

func generateBoundaryString() -> String {

return "Boundary-\(NSUUID().uuidString)"

}

解决方案func webServiceImageUploadForMyProfile(image:UIImage,url:String,method:HTTPMethod,parameters : [String:AnyObject]?,completionHandler:@escaping (JSON?,String)->Void) {

let url = try! URLRequest(url: url, method: .post, headers: nil)

Alamofire.upload(multipartFormData:{ multipartFormData in

if let imageData = UIImageJPEGRepresentation(image, 0.6) {

multipartFormData.append(imageData, withName: "image", fileName: "Profile.png", mimeType: "image/png")

}

for (key, value) in parameters! {

multipartFormData.append(value.data(using: String.Encoding.utf8.rawValue)!, withName: key)

}

}, with: url, encodingCompletion: {

encodingResult in

switch encodingResult {

case .success(let upload, , ):

upload.uploadProgress(closure: { (progress) in

print("Upload Progress: \(progress.fractionCompleted)")

})

upload.responseJSON { response in

if(response.result.isSuccess){

if let data = response.result.value{

let json = JSON(data)

print(json)

completionHandler(json,String())

return

}

}else {

completionHandler(nil,(response.result.error?.localizedDescription)!)

}

}

case .failure( _):

break

}

})

}

please try ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值