بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
Base64 upload images
سلام من میخوام این اطلاعات رو سمت سرور با POST بفرستم
توی stack نمونه کد زیاد بود ولی مثالی به این شکل پیدا نکردم
من عکس انتخاب شده توسط کاربر رو تبدیل به base64 میکنم بعد با بقیه اطلاعات پروفایلش سمت سرور با POST میفرستم
توی اندروید بارها این کارو کردم ولی متاسفانه توی ios نتونستم
ممنون میشم اگه راهنمایی کنید.
let param = [
"userId":AppDelegate.USER_ID,
"name":name,
"lastName":lname,
"mobile":mobile,
"email":email,
"userPicBase64String":base64str,
"token":token
]
0
0
سلام ، لطفا در مورد مشکلتون بیشتر توضیح بدید اگر هم خطایی دارید قرار دهید . (9 سال پیش)
0
0
سلام - مشکلم رو بالا واضح گفتم، میخوام اطلاعات بالا که توی دیکشنری دارم رو ، که توی اون عکس base64 و اطلاعات پروفایل کاربر هست رو میخوام سمت سرور با POST بفرستم ولی نمی دونم باید چطوری این کارو انجام بدم. توی stack زیاد گشتم ولی متاسفانه چیزی پیدا نکردم که به درد من بخوره. (9 سال پیش)
0
0
بنظر من از کتابخونه alamofire استفاده کنید. هم کارردش خیلی ساده هست. هم باگ نداره. هم restful هست. این هم لینکش: لینک (9 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
مشاهده پاسخ صحیح
پاسخ به سوال
Farshid Roohi
9 سال پیش
+2
0
پاسخ صحیح
این تیکه کد رو میزارم شاید به درد کسی خورد
- آپلود عکس به صورت base64 و به همراه اطلاعات پروفایل کاربر
func myImageUploadRequest()
{
let imageData = UIImageJPEGRepresentation(imgProfile.image!, 0.4)
strBase64ProfileImage = imageData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
print(strBase64ProfileImage)
let myUrl = NSURL(string: AppDelegate.URL_UPDATE_PROFILE!)!
let request = NSMutableURLRequest(URL:myUrl);
request.HTTPMethod = "POST";
let param = [
"userId":AppDelegate.USER_ID,
"name":edtName.text!,
"lastName":edtFamily.text!,
"mobile":edtMobile.text!,
"email":edtEmail.text!,
"userPicBase64str":strBase64ProfileImage,
"token":""
]
let boundary = generateBoundaryString()
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
if(imageData==nil) { return; }
request.HTTPBody = createBodyWithParameters(param, boundary: boundary)
print("Start")
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("error=\(error)")
return
}
// You can print out response object
print("******* response = \(response)")
// Print out reponse body
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("****** response data = \(responseString!)")
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary
print(json)
dispatch_async(dispatch_get_main_queue(),{
print("End")
});
}catch
{
print(error)
}
}
task.resume()
}
func createBodyWithParameters(parameters: [String: String]?, boundary: String) -> NSData {
let body = NSMutableData();
if parameters != nil {
for (key, value) in parameters! {
body.appendString("--\(boundary)\r\n")
body.appendString("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")
body.appendString("\(value)\r\n")
}
}
body.appendString("--\(boundary)--\r\n")
return body
}
func generateBoundaryString() -> String {
return "Boundary-\(NSUUID().UUIDString)"
}
}
extension NSMutableData {
func appendString(string: String) {
let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
appendData(data!)
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .