برنامه نویس وب و موبایل


یکشنبه 25 آذر
MVC

آپلود چندین عکس به سرور در زبان swift برای ios

چهارشنبه, 30 آبان 1397

اول از همه بگم این آموزش برای برنامه نویسی 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 بهش مپ می کنیم و داخل شرطمون هم می تونیم هر کاری که قراره بعد آپلود انجام بشه رو انجام بدیم devil
 
 


نظرات

Drag to order
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
نظر تایید شده ای برای این مطلب وجود ندارد .