اول از همه بگم این آموزش برای برنامه نویسی ios با swift هست
برای آپلود عکسها از Alamofire استفاده می کنم اول از همه با استفاده از pod به پروژه مون اضافه ش می کنیم با دستور زیر
pod 'Alamofire', '~> 4.7'
بعدش ما می تونیم یه سری پارامتر برای هدر درخواستمون بسازیم از جمله access token و دو تا پارامتر دیگه که برای فرستادن عکس نیازه
let headers: HTTPHeaders = [
"access_token": accessToken,
"X-FileName" : "file[]",
"Content-Type" :"application/octet-stream"
]
و درخواستمون به صورت زیر می تونیم ارسال کنیم
Alamofire.upload(multipartFormData: { (multipartFormData) in
for item in Images {
let imgData = item.jpegData(compressionQuality: 0.25)!
multipartFormData.append(imgData, withName: "file[]", fileName: "\(Date().timeIntervalSince1970).jpg", mimeType: "image/jpg")
}
}, usingThreshold: 0, to: "URLupload", method: HTTPMethod.post, headers: headers, encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
if let data = response.data{
do{
let js = try JSONSerialization.jsonObject(with: data, options: [])
print(js)
let dj = try JSONDecoder().decode(responseGenerally.self, from: data)
DispatchQueue.main.async(){
if(dj.hasError == false){
//Do anything
}else{
print(dj.error?.message ?? "errrrr")
}
}
} catch{
print(error)
}
}
}
case .failure(let error):
print(error)
}
})
من قسمت های مختلفی از کد بالا رنگی کردم که باید اونها رو با مقادیر خودتون پر کنید اولیش Images هست که یک آرایه از UIImage هاست که قراره آپلود بشه دومین قسمت compressionQuality که عددش بین صفر تا یک هست و هرچی به یک نزدیکتر باشه عکس باکیفیت تر و حجیم تر هست و هر چی به صفر نزدیک تر باشه برعکسش قسمت بعدی withName هست که اینم اسمی می ذارید که توی api مشخص شده به این نام بگیره URLupload هم که آدرس api هست که قراره عکسها رو بگیره و responseGenerally هم یه کلاسه که json بهش مپ می کنیم و داخل شرطمون هم می تونیم هر کاری که قراره بعد آپلود انجام بشه رو انجام بدیم 