کمپیوٹرزفائل کی اقسام

پی ایچ پی: سرور پر فائل اپ لوڈ

پی ایچ پی کے ذریعے فائلوں کو ڈاؤن لوڈ کر رہا ہے - ایک بہت دلچسپ کیس، جس میں بہت احتیاط سے رابطہ کیا جانا چاہیے کرنے کے لئے. انٹرنیٹ پر آپ کی فائل اپ لوڈ کے نفاذ کی متعدد مثالوں کو تلاش کر سکتے ہیں، لیکن ان میں سے سب نہیں اچھے ہیں اور حفاظت کے قواعد و ضوابط کو پورا.

ایسی چیزیں جو ایک طویل وقت لگتا ہے یہاں تک کہ اگر، کسی نتیجے پر لانے کی ضرورت ہے. آپ کو کوڈ میں وقفے چھوڑ دیتے ہیں تو پھر اپنے پورے سرور سمجھوتہ کیا جا سکتا.

حفاظت

پی ایچ پی کے ساتھ اپ لوڈ فائل کے لئے سرور بہت آسانی سے کیا جاتا ہے. کوڈ بہت مختصر اور سادہ ہے. لائنوں کے ایک جوڑے. تاہم، یہ طریقہ خطرناک ہے. بہت زیادہ وقت اور حفاظت کو دور کوڈ کی لائنیں.

خطرہ ہے کہ آپ معائنہ کرنے نہیں ہوتا ہے تو، کسی بھی حملہ آور کو آپ کے سرور پر ان کی سکرپٹ کو اپ لوڈ کر سکتا ہے. اس صورت میں، یہ مکمل رسائی پڑے گا. انہوں نے کہا کہ جو کچھ وہ چاہتا ہے کیا کر سکتے ہیں:

  • ڈیٹا بیس کو حذف؛
  • فائلوں سائٹس کو حذف؛
  • فائلوں سائٹس پر نظر ثانی؛
  • اپنی ویب سائٹ میں آپ کا اشتہار کا اضافہ؛
  • وائرس ڈاؤن لوڈ، اتارنا.
  • تمام صارفین کو ان سائٹس پر ری ڈائریکٹ؛
  • اور حملہ آور کے ذہن میں آنے والے بہت سے دیگر چیزیں.

آپ ہمیشہ صارف کے لئے ایک فائل کو ڈاؤن لوڈ کرنے کی کوشش ہے کہ جانچ پڑتال کرنا چاہئے. مثال کے طور پر، آپ کو صرف تصاویر اپ لوڈ، تو یہ ضروری ہے کہ فائل ایک تصویر درست ہے اس بات کی تصدیق کی ہے. دوسری صورت میں، آپ کو کچھ بھی ڈاؤن لوڈ، اتارنا گا.

بالکل تصدیقی لاگو کرنے کے لئے کس طرح، یہ فائلوں کو اپ لوڈ براہ راست امتحان اسکرپٹ کے ساتھ دکھایا جائے گا.

ایک پی ایچ پی فارم کی تشکیل

فائل اپ لوڈ فارم بہت سادہ ہے. براؤز کے بٹن اور بٹن اپ لوڈ غائب ہے.

یہ آسان ہے، کیونکہ فارموں نہیں کریں گے بنانے کا طریقہ بیان کرتا ہے. مزید ہدایات آپ نے پہلے ہی HTML کے بنیادی تصورات (دوسری صورت میں آپ کو پی ایچ پی پر ڈاؤن لوڈ کرنے کے بارے میں معلومات کے لئے تلاش نہیں کیا جائے گا) ہے کہ فرض.

لیکن شکل میں اعداد و شمار آپ enctype وصف شامل کرنے کی ضرورت ہے یاد رکھیں کہ.

دوسری صورت میں، فائل ہینڈلر پر ڈیٹا منتقل نہیں کیا جائے گا.

یہ کس طرح کام کرنا چاہئے؟

آپ کو براؤز کے بٹن پر کلک کرتے ہیں تو آپ کو ایک باکس ہے جہاں ایک فائل منتخب کرنے کے لئے کہا دیکھنا چاہیئے.

اس کے بعد یہ فائل واقع ہے جہاں ایک راستہ وصول کرنے کے لئے ضرورت ہو گی.

راہ ظاہر نہیں ہوتا ہے تو، ایک بار پھر کارروائی انجام دیتے ہیں.

ڈاؤن لوڈ فائل ہینڈلر پر کلک کرنے کے بعد کسی بھی معلومات دے سکتے ہیں.

مثال کے طور پر، آپ کو لائن اس فائل "فلاں" کا نام کامیابی "فلاں" فولڈر میں اپ لوڈ کر دیا گیا ہے ہے ہے کہ لکھ سکتے ہیں. بالکل، فائل کا نام ہمیشہ مختلف دی جائے گی.

عام طور پر، اس کی معلومات ڈبگ کوڈ کرنے کے لئے استعمال کیا جاتا ہے. اس طرح یہ توثیق کرنے کے لئے اعداد و شمار کو منتقل کیا جاتا ہے اور لکھتا مطلوبہ ڈائریکٹری میں پائے جاتے ہیں کہ ممکن ہے. یہ ہے کہ، یہاں تک کہ فائل کے نام کا اشارہ نہیں ہے. اس اضافی معلومات کے بعد صارف کی ضرورت نہیں ہے کہ.

اس کی پیداوار کرنے کے لئے صارف کو ایک سے زیادہ فائلوں کو ڈاؤن لوڈ، صرف اس صورت کا نام سمجھ میں آتا ہے. اس طرح کی صورت ہے، ایک چھوٹا سا مزید غور کریں. چلو آگے خود حاصل نہیں کرنے دیں.

ایڈجسٹمنٹ

سرور پر پی ایچ پی فائل اپ لوڈ میں مخصوص ترتیبات، php.ini فائل میں کیا جانا چاہئے جس کی ضرورت ہے. اس فائل کی ترتیبات کی ایک بہت پر مشتمل ہے. وہ سب ہمیں ضرورت نہیں ہے. file_uploads، upload_tmp_dir اور upload_max_filesize: ہم تین لائنوں میں دلچسپی رکھتے ہیں.

براہ مہربانی نوٹ کریں کہ ان کی ترتیبات کو نہ صرف کسی بھی ایک، سرور پر آپ کی تمام سائٹس کو متاثر کرے گا. لہذا، آپ کو صارفین کو لوڈ کرنا پڑے گا اس حقیقت پر مبنی زیادہ سے زیادہ سائز مقرر کرنے کے لئے. یہ بہت بڑی سیٹ کرنے کی سفارش کی نہیں ہے.

اگر آپ ان پیرامیٹرز میں اقدار کو تبدیل ایک بار، آپ کے سرور کو دوبارہ شروع کرنے کی ضرورت ہے. ورنہ ترتیبات نہ وہ سرور لوڈ کے وقت میں پڑھ کے طور پر، اثر لے جائے گا.

آپ کے سرور پر SSH کے ذریعے منسلک کر کے کنسول میں یہ کر سکتا ہوں. بس کمانڈ سروس httpd پر دوبارہ شروع کرنے درج کریں، اور پھر ترتیبات مؤثر ہونگی.

ایک اور طریقہ - ISP پینل کے ذریعے یا بلنگ پینل فراہم ذریعے ایک دوبارہ شروع کرنے.

لڑی کی فائل

پی ایچ پی میں فائل اپ لوڈ کی صف $ _FILES کی طرف سے کیا جاتا ہے. یہ فائلوں کہ ہم لوڈ، اتارنا کے بارے میں تمام معلومات پر مشتمل ہے

جو معلومات صف، مندرجہ ذیل فائل ہینڈلر میں لکھنے کے لئے کافی میں موجود ہے دیکھنے کے لئے.

کسی بھی فائل کو منتخب کریں اور کلک کریں "اپ لوڈ کریں". ہینڈلر صفحے پر معلومات $ _FILES میں ذخیرہ کیا جاتا ہے کہ ظاہر کرے گا. متغیر بڑے حروف کے ساتھ مکمل طور پر لکھا گیا ہے. پی ایچ پی - ایک زبان حساس.

آپ دیکھ سکتے ہیں، اس صف میں فیلڈز کی ایک بہت ہے. ان میں سے سب ہمارے لئے اہم ہیں. سب سے پہلے میدان ہے جس میں یہ آپ کے کمپیوٹر پر استعمال کیا جاتا ہے کی شکل میں فائل کے نام پر مشتمل ہے.

قسم کالم فائل کی قسم متعین نہیں ہے. Tmp_name میدان عارضی فائل کے نام کے مساوی ہے. اسکرپٹ کے اختتام کے بعد حذف کر دیا جائے گا.

خرابی کے میدان میں ایک خرابی کا کوڈ پر مشتمل ہے. یہ تھوڑا سا مزید تھا. سائز - بائٹس میں سائز.

غلطیاں

پی ایچ پی کی فائل اپ لوڈ کے ذریعے کیا جاتا ہمیشہ ایک غلطی کوڈ کے ہمراہ ہے. ایک غلطی پیغام "غلطی" میں داخل ہو گئے. اسکرین شاٹ کی خرابی صفر ہے.

تمام غلطیوں کی قدر پر غور کریں:

یہ معمول HTML میں وضاحت کی جا سکتی ہے کہ پیرامیٹر کے بارے میں اوپر کہا گیا تھا.

یہاں جس اپ لوڈ کردہ فائل کی رقم کی ایک حد کی طرف اشارہ فائل، اتارنا کرنے کے لئے ایک نمونہ شکل ہے.

پی ایچ پی: فائل اپ لوڈ سکرپٹ

تمام عملی طور پر کیا جاتا ہے کے طور پر؟ پی ایچ پی میں فائل اپ لوڈ کی کاپی کمانڈ وقت ہوتی ہے. سورس فائل اور منزل فائل - آپ کو ایک فائل کو ڈاؤن لوڈ کرنے کے لئے سوال میں دلچسپی رکھتے ہیں تو، جواب بہت سادہ copy-، دو پیرامیٹرز کا استعمال کرتا ہے ہے.

لیکن، جیسا کہ اوپر بیان، ایسا نہیں سیکورٹی وجوہات کے لئے محدود ہو سکتا ہے. مثال کے طور پر چیک ہم جہاز، آپ کو صف $ _FILES میں میدان کی قسم کے استعمال کر سکتے ہیں کی فائل کس قسم. سب سے پہلے، کے معائنہ کے ساتھ نمٹنے کے، اور پھر مکمل اسکرپٹ پر منتقل

کی آپ کو صارفین کو صرف GIF، JPEG یا PNG کی ایک قرارداد کے ساتھ ایک تصویر اپ لوڈ کرنے کی اجازت دینے کے لئے چاہتے ہیں ہیں. وضاحت کریں کہ یہ اس طرح ہو سکتا ہے.

اگر ($ _ فائلوں کو [ 'file_upload'] [ 'قسم'] = "تصویر / GIF") {
"افسوس، ہم صرف GIF فائلیں ڈاؤن لوڈ کرنے کی حمایت" بازگشت؛
ایگزٹ؛
}

آپ تمام 3 اقسام جہاز کرنا چاہتے ہیں تو، صرف تصویر کے دیگر قسم کے لئے ایک اضافی شرط کا اضافہ.

کاپی (تصویر 1، تصویر 2): نقل کر رہا ہے کی طرح یہ کیا جاتا ہے.

ہمارے معاملے میں، کام کے سرور پر پی سی سے ڈاؤن لوڈ کرنے کی ہے جب، آپ ایسا کر سکتے ہیں

کاپی ($ _ فائلوں کو [ 'file_upload'] [ "tmp_name"]، "1.jpg")

یہ فائل کا نام 1.jpg ساتھ کاپی کیا جائے گا، ہے. یہ مکمل طور پر درست نہیں ہے. اس صورت میں، یہ صرف ایک مثال ہے. فائل کا نام فائل پر منحصر ہے، مختلف وضاحت کرنے کی، اور توسیع کی وضاحت ہمیشہ ضروری ہے.

تعین توسیع مختلف طریقوں ہو سکتا ہے. یہ سب پانڈتی کے ڈویلپر پر منحصر ہے. (سیکنڈوں میں سے دسواں کا فرق) توسیع کا تعین کرنے کے تیز ترین طریقوں میں سے ایک ہے - اس کے اگلے کوڈ ہے.

$ Path_info = pathinfo ($ _ فائلوں کو [ 'photo1'] [ 'نام'])؛

$ ایکسٹینشن = $ path_info [ 'توسیع']؛

متغیر $ ایکسٹینشن ہم مطلوبہ توسیع محفوظ کرے گا. ایک فائل کے نام پر بے ترتیب کا استعمال کرتے ہوئے MD5 پر مقرر کئے جا سکتے. آپ فائلوں کی ایک بہت ڈاؤن لوڈ، اتارنا کرنے کے لئے کا ارادہ رکھتے ہیں تو، یہ مختلف فولڈرز کو ان کے جہاز کے لئے بہتر ہے. تو یہ زیادہ آسان ہو جائے گا. خاص طور پر، آپ کو پاک کرنے کے لئے چاہتے ہیں.

کوڈ درج ذیل ہو جائے گا ڈاؤن لوڈ، اتارنا کرنے کے لئے.

/// تصویر کے ساتھ

اگر ($ _FILES [ 'photo1'] [ 'tmp_name'] نل ==)

{

گونج ( "

پر نامعلوم فائل. پر

واپس ... لئے ")؛

ایگزٹ؛

}

///. سرور پر کسی بھی منصوبے کے لیے تو کہہ بڑی فائلوں (ویڈیو) کو لوڈ کرنے کی اجازت ہے، لیکن صرف تصاویر سے ہیں، اور صارفین کو محدود کرنے کی ضرورت ہے

اگر (($ _FILES [ "photo1"] [ "سائز"]> 1024 * 1024 * 2)

{

؟>

کے زیادہ سے زیادہ کی اجازت سائز میں 2 MB پر

واپس ... لئے

ایگزٹ؛

}

// فولڈرز بنا

// رواں ماہ کے ایک فولڈر بنا

اگر (! file_exists ( "IMG /". تاریخ ( "M")))

{

mkdir کی ( "IMG /" تاریخ ( "M").)؛

}

// موجودہ دن میں ایک فولڈر بنا

اگر (! file_exists ( "IMG /". تاریخ ( "M"). "/". تاریخ ( "D")))

{

mkdir کی ( "IMG /" تاریخ ( "M") "/" تاریخ ( "D") ...)؛

}

/// فائل چڑھانے

$ Path_info = pathinfo ($ _ فائلوں کو [ 'photo1'] [ 'نام'])؛

$ ایکسٹینشن = $ path_info [ 'توسیع']؛

/// فائل کا نام پیدا

$ ID = MD5 (تاریخ ( "YMd"))؛

اگر (کاپی ($ _ فائلوں کو [ 'photo1'] [ "tmp_name"]، "IMG /". تاریخ ( "M"). "/". تاریخ ( "D"). "/". $ ID. $ ایکسٹینشن) )

{

گونج ( "کامیابی کے ساتھ اپ لوڈ کردہ فائل")؛

}

/// مزید کسی کارروائی (ڈیٹا بیس میں اندراج، اور اسی طرح کی. این)

}

ایک سے زیادہ فائلوں

ایک سے زیادہ فائلوں (PHP) اپ لوڈ کی شکل میں اضافی شعبوں کے اسباب کی طرف پایا جاتا ہے.

یہ طریقہ اسے ڈاؤن لوڈ کرنے کے لئے فائلوں کی تعداد کو محدود طور پر، بہت اچھا نہیں ہے. اس کے علاوہ، یہ پروگرامنگ میں خراب فارم سمجھا جاتا ہے. سب کچھ متحرک کرنے کی کوشش کروں.

مثالی آپشن - یہ ایک بٹن دبانے سے ایک بار میں فائلوں کی ایک بڑی تعداد کا ایک انتخاب ہے.

ایسا کرنے کے لئے یہ کوڈ کی طرح ایک شکل پیدا.

<فارم طریقہ = "پوسٹ" کارروائی = "ہینڈلر فائل کا لنک" کا نام = "upload_form" enctype = "ترتیبوار / فارم ڈیٹا">

<ان پٹ کی کلاس = "form_upload" قسم = "فائل" کا نام = "file1 []" میں ایک سے زیادہ قیمت = "جائزہ">

<ان پٹ کی کلاس = "form_upload" قسم = "جمع کرائیں" کا نام = "upldFile" کی قیمت = "شامل کریں" />

لفظ کے ایک سے زیادہ کے علاوہ یاد رکھیں کہ، اور نام ایک صف [] کے طور پر دیا جاتا ہے. اس صورت میں، $ _FILES صف تھوڑا سا مختلف ہو جائے گا. آپ صف کی ایک سرنی مل جائے گا.

جانچ کرنے کے لئے دوبارہ var_dump ($ _ فائلوں) استعمال کر سکتے ہیں؛

آپ کی تمام فائلوں کو اس طرح صف میں رکھا جائے گا:

  1. $ _FILES [ "file1"] [ "نام"] [0]
  2. $ _FILES [ "file1"] [ "کا نام"] [1]
  3. اور تو.

قوسین میں صف میں فائل نمبر لکھا ہوا ہے. صفر سے گنتی. ہم اسی طرح میں ان کا علاج، صرف سائیکل پوچھیں اور انڈیکس انہوں نے مزید کہا [$ I] کے اختتام پر مندرجہ بیان کوڈ سے رابطہ کر کے.

$ I = 0؛

جبکہ ($ _FILES [ "file1"] [ "نام"] [$ I] <> '')

{

/// مندرجہ بالا کوڈ پیسٹ

}

اس طرح، آپ کو آپ کی فائلوں کی ایک جامد نمبر (آخری تصویر) کے ساتھ ورژن استعمال کرتے ہیں تو عام طور پر معاملہ ہے، کوڈ کا غیر ضروری تکرار کے بغیر ایک سائیکل میں سرور پر ایک پی ایچ پی فائل اپ لوڈ کے ذریعے ایسا کرنا پڑے گا.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ur.birmiss.com. Theme powered by WordPress.