آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل نام تصاویری که فارسی نوشته شده در دانلود منیجر

enaderlou  7 سال پیش  7 سال پیش
0 0

با سلام و احترام

من از دانلود منیجری که در آموزشها قرارداده شده استفاده میکنم ولی متوجه شدم وقتی نام تصویری که دانلود میشه اگه فارسی باشه یا حروف فارسی داخلش باشه کرش میکنه

متاسفانه جایی که من از دانلود منیجر استفاده میکنم دست کاربره و نمیتونم نام فایل رو کنترل کنم 

حالا سوالم اینه که آیا میتونم وقتی دانلود میکنم نام فایل رو بررسی کنم و اگه خطا داشت خودم اصلاحش کنم یا راه بدون اصلاحی هم هست؟

 برای این سوال 4 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
کاشی زاده  7 سال پیش
+1 0

سلام ،
برای رفع این مشکل میتونید نام فایل را Encode کنید .
در این لینک مشکلی مشابه را یکی از دوستان حل کرده اند .

پاسخ به سوال 
enaderlou  7 سال پیش
0 0

اون لینک رو دیدم تقریبا در وب هم همین رو پیشنهاد کردن ولی گویا 

stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
 

با سویفت ۳ مشکل داره و تغییر کرده یا  حداقل با نسخه فعلی مشکل داره

پاسخ به سوال 
enaderlou  7 سال پیش
0 0

با سلام و احترام

من با کد زیر نام فایل رو گرفتم و تبدیل کردم به utf8CString

آیا میشه همینو جایگزین نام فایل کرد؟

ثانیا حالا در صورت امکان جایگزینی . چطور میتونم کد تبدیل شده رو به آخر url اضافه کنم؟

 let nsurl = fileUrl.components(separatedBy: "/").last
let nsurlNew = nsurl?.utf8CString
+1 0
سلام ، اگر خروجی گه به شما میده صحیح باشه مشکلی وجود نداره ، برای اضافه کردن هم میتونید با استفاده از دستور بالا که نوشتید آدرس را تکه تکه کنید و به جای خانه آخر مقدار جدید را جایگزین نمایید . (7 سال پیش)
0 0
دقيقا همين موضوع رو مشكل دارم خروجي فككنم صحيحه ولي نميتونم مقدار nsurlNew رو به آخر nsurl اضافه كنم يعني نميتونم مقدار رو حذف كنم و بجاش مقدار جديد رو جايگذاري كنم (7 سال پیش)
+1 0
nsurl را با حذف .last به یک آرایه تبدیل کنید .بعد از آن میتوانید هر خانه ای از آرایه را بگیرید و مقدارش را تغییر دهید . (7 سال پیش)
0 0
انجام دادم ولی وقتی خواستم خانه ی آخر آرایه که تغییر کرده رو به همراه کل آرایه به یک string تبدیل کنم این پیغامو داد Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions البته به محض اینکه اون خانه تغییر یافته رو به آخر string اضافه میکنم این پیغام میاد (7 سال پیش)
+1 0
لینک (7 سال پیش)
پاسخ به سوال 
enaderlou  7 سال پیش
0 0

 پاسخ صحیح

ضمن تشکر از جناب آقای کاشی زاده محترم بخاطر حوصله فراوانی که به خرج دادن تا این مشکل به مطلوبترین شکل حل بشه

نمونه کدهای انجام شده رو جهت استفاده دوستان در دانلود منیجر در ذیل قرار میدم

 let array_Nsurl = fileUrl.components(separatedBy: "/")
let array_NsurlNew = array_Nsurl[7].addingPercentEncoding(withAllowedCharacters: .alphanumerics)
let nsUrlNew = array_Nsurl[0] + "/" + array_Nsurl[1] + "/" + array_Nsurl[2] + "/" + array_Nsurl[3] + "/" + array_Nsurl[4] + "/" + array_Nsurl[5] + "/" + array_Nsurl[6] + "/" + array_NsurlNew!
+1 0
در مثال بالا که درج کردم خیلی ساده تر میشد این کار رو انجام بدید و نیازی به نوشتن نام هر خانه آرایه و اضافه کردن / به این شکل نبود . (7 سال پیش)
0 0
بله ساده تر بود ولی متاسفانه همه مثالها با خانه هفتم که encod شده بود مشکل داشت البته شاید هم من نتونستم (7 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .