زیادہ تر اپ لوڈ فارم ہر ناکامی کی اطلاع ایک ہی جملے میں دیتے ہیں۔ وہ اکیلا پیغام کم از کم چار مختلف جانچیں چھپا رہا ہوتا ہے، اور ہر ایک کا حل الگ ہے۔
پہلی جانچ: بائٹ کی حد
سب سے عام حد، اور عام طور پر لوگ اسی کے بارے میں سوچتے ہیں۔ یہ بائٹ میں ناپی جاتی ہے، میگا پکسل میں نہیں، اس لیے آج کل کے فون سے سیدھی آئی ہوئی چھوٹی سی دکھنے والی تصویر بھی آسانی سے ناکام ہو سکتی ہے۔
اس کا حل یہ ہے کہ بتائی گئی حد سے کچھ نیچے کے عدد تک کمپریس کریں — ٹھیک حد پر نہیں۔ کچھ نظام فائل کے بجائے بھیجی گئی درخواست ناپتے ہیں، اور جو اپ لوڈ راستے میں base64 میں بدلتا ہے وہ ڈسک پر پڑی فائل سے تقریباً ایک تہائی بڑا ہو جاتا ہے۔ حد سے چند فیصد نیچے رہنے میں آپ کا کچھ خرچ نہیں ہوتا اور یہ پورا سوال ہی ختم ہو جاتا ہے۔
دوسری جانچ: پیمائش کی حد
یہ فائل سائز سے الگ چیز ہے، اور اکثر کہیں لکھی ہوئی نہیں ہوتی۔ فارم مطالبہ کر سکتا ہے کہ تصویر 1200 پکسل سے زیادہ چوڑی نہ ہو، چاہے فائل کتنی ہی چھوٹی ہو۔ زیادہ زور سے کمپریس کرنے سے یہ حد کبھی پوری نہیں ہوگی — پیمائش گھٹانی پڑے گی۔ اگر فارم دکھانے کا سائز بتاتا ہے، تو عموماً اسی کے آس پاس زیادہ سے زیادہ حد بھی لاگو کرتا ہے۔
تیسری جانچ: MIME قسم
جو سرور احتیاط کرتے ہیں وہ فائل کی توسیع پر بھروسہ نہیں کرتے؛ وہ پہلے چند بائٹ پڑھ کر فارمیٹ کو
اس کے دستخط سے پہچانتے ہیں۔ کسی PNG کا نام بدل کر .jpg کر دیں، سخت سرور کو پھر بھی PNG ہی نظر
آئے گا، کیونکہ بائٹ یہی کہہ رہے ہیں۔
اسی لیے فارمیٹ بدلنا کام کرتا ہے اور نام بدلنا نہیں۔ اور اسی لیے کسی ڈیزائن ٹول سے ”JPEG“ کے نام سے نکالی گئی فائل بھی ناکام ہو سکتی ہے: کچھ برآمد کرنے والے ایسا نسخہ لکھ دیتے ہیں جسے سرور کی لائبریری قبول نہیں کرتی۔
چوتھی جانچ: کلر اسپیس اور اینکوڈنگ کا نسخہ
کم پیش آتی ہے، مگر حقیقی ہے۔ CMYK والی JPEG، 16-bit والی PNG اور پروگریسو JPEG — تینوں درست فائلیں ہیں، مگر سرور کی کچھ پرانی لائبریریاں انہیں سرے سے مسترد کر دیتی ہیں۔
دوبارہ اینکوڈ کرنا وہ سب ٹھیک کر دیتا ہے جن تک وہ پہنچ سکتا ہے۔ ToolZool سادہ 8-bit پکسل تک ڈی کوڈ کرتا ہے اور طے شدہ طور پر بیس لائن JPEG لکھتا ہے، اس لیے 16-bit والی PNG 8-bit بن کر واپس آتی ہے اور پروگریسو JPEG بیس لائن بن کر — اور یہی وہ نسخے ہیں جو نک چڑھے سرور کے قبول کرنے کا سب سے زیادہ امکان رکھتے ہیں۔ CMYK والی JPEG مشکل معاملہ ہے: وہ ویب کی نہیں، چھپائی کے کام کی فائل ہے، اور اس کا قابلِ بھروسہ حل یہی ہے کہ جس چیز نے اسے بنایا تھا اُسی سے دوبارہ RGB میں برآمد کریں۔
ان میں فرق کیسے پہچانیں
جان بوجھ کر ایک ننھی سی آزمائشی تصویر بھیجیں: چند کلوبائٹ، چند سو پکسل، سادہ بیس لائن JPEG۔ اگر وہ اپ لوڈ ہو جائے تو مسئلہ آپ کی فائل میں ہے اور اب آپ کو معلوم ہے کہ کون سا پہلو بدلنا ہے — کمپریسر سے شروع کریں، اور اگر حد سخت ہو تو 50 KB کی حد تک پہنچنا میں چیزیں بدلنے کی ترتیب بیان ہے۔ اگر آزمائشی تصویر بھی ناکام ہو جائے تو مسئلہ فارم، سیشن یا براؤزر میں ہے، اور کتنی ہی بار دوبارہ اینکوڈ کریں، فائدہ نہیں ہوگا۔

