КомпьютерФайлын төрөл

PHP: сервер рүү файл оруулах

PHP ашиглан файлуудыг татаж авах - нь маш сонирхолтой хэрэг, үүний маш болгоомжтой хандаж байх ёстой. Интернет дээр та файл байршуулах хэрэгжүүлэх олон жишээг олж болно, гэхдээ бүгдийг нь сайн биш байгаа, аюулгүй байдлын дүрэм журмыг хангасан.

Ийм зүйл нь урт удаан цаг хугацаа хэрэгтэй байсан ч, нэгэн дүгнэлт авчрах хэрэгтэй. Та код дахь ялгааг үлдээх бол таны бүх сервер эвдэгдсэн байж болох юм.

аюулгүй байдал

PHP нь файл хуулж сервер нь маш амархан хийгддэг байна. код нь маш энгийн, богино байна. шугам Зүгээр л хосууд. Гэсэн хэдий ч энэ арга нь аюултай юм. Илүү их цаг хугацаа, хол аюулгүй байдалд код шугам.

аюул та үзлэг хийж чадахгүй бол ямар ч халдагч таны сервер дээр скриптүүдийг хуулж болох юм. Энэ тохиолдолд, энэ нь бүрэн эрхтэй болно. Тэр хүссэн бүхнээ хийж болно:

  • мэдээллийн санг устгах;
  • файлууд газрыг устгаж;
  • файлууд сайт, өөрчлөх;
  • Таны вэб сайт таны зар нэмэх;
  • вирус татаж авах;
  • бүх хэрэглэгчид өөрсдийн сайт дээр дахин чиглүүлэх;
  • мөн ирэх бусад олон зүйл халдагчид санаа байна.

Та үргэлж хэрэглэгчийн хувьд файлыг татаж авахын тулд оролдлого байгаа эсэхийг шалгах хэрэгтэй. Жишээ нь, та зөвхөн зураг оруулах бол энэ нь шаардлагатай файлыг дүрс үнэн зөв эсэхийг шалгах явдал юм. Үгүй бол та ямар нэг зүйл татаж авах болно.

баталгаажуулалтыг хэрхэн хэрэгжүүлэх Яг энэ нь файл хуулж шууд шалгалт скрипт нь харагдах болно.

нь PHP хэлбэрийг бий болгох

Файл оруулах хэлбэр нь маш энгийн байдаг. линкүүдээс дуудах товчлуур болон байршуулахыг товч байхгүй байна.

Энэ нь хялбар, учир нь хэрхэн, хэлбэр байх болно үүсгэх тайлбарладаг. Цаашид заавар Хэрэв та аль хэдийн HTML-ийн үндсэн ойлголт (өөрөөр та PHP дээр татаж авах талаар мэдээлэл хайж байх байсан) гэж бодъё.

Харин хэлбэрээр мэдээ танд enctype шинж чанарыг нэмэх хэрэгтэй гэдгийг анхаарна уу.

Үгүй бол, файлын ажиллагаанаас дээр өгөгдөл дамжих байх болно.

Яаж ажиллах хэрэгтэй вэ?

Та линкүүдээс дуудах товчлуур дээр товшино уу үед та файлыг сонгох асуухад хайрцаг харах ёстой.

Үүний дараа энэ нь файл байрлаж байгаа замыг хүлээж авах шаардлагатай болно.

зам гарч чадахгүй байгаа бол дахин үйлдлийг гүйцэтгэнэ.

татаж авах файлын ажиллагаанаас дээр дарж дараа ямар нэг мэдээлэл өгч болох юм.

Жишээ нь, та файл нь "тийм учраас" нэр нь амжилттай "ийм, ийм" фолдерт байршуулсан байна гэж заасан мөрийг бичиж болно. Мэдээж хэрэг, файлын нэр нь үргэлж өөр өөр өгөх болно.

Ер нь, энэ мэдээлэл нь дибаг хийх кодыг ашиглаж байна. Тиймээс энэ нь өгөгдөл дамжих ба бичилтүүд хүссэн сан тохиолддог гэдгийг батлахын тулд боломжтой юм. Энэ нь, тэр ч байтугай файлын нэр заасан биш юм байна. Энэ нэмэлт мэдээллийг тул хэрэглэгч хэрэгтэй биш юм.

Энэ хэрэглэгч нь олон файлуудыг татаж тохиолдолд нэрийг гаралттай ач холбогдолтой. Ийм бага зэрэг цаашид авч үзэх тохиолдол олон байдаг. -н өмнө өөрсдийгөө авч чадахгүй үзье.

тохируулга

сервер PHP файл байршуулах зарим тохиргоог php.ini файлд хийх ёстой шаарддаг. Энэ файл нь тохиргооны маш их агуулдаг. Тэд бүгд бидэнд хэрэгтэй байна. file_uploads, upload_tmp_dir болон upload_max_filesize: Бид гурван шугамын сонирхож байна.

Эдгээр тохиргоонууд нь зүгээр л ямар ч нэг нь ч, сервер дээр таны сайт бүх нөлөөлөх болно гэдгийг анхаарна уу. Тиймээс Үнэндээ та олон хэрэглэгчтэй ачаалах хэрэгтэй болно үндэслэн хамгийн их хэмжээг тохируулах. Энэ нь хэтэрхий том тогтоох нь зүйтэй байна.

Хэрэв та эдгээр параметрүүдийн утгыг өөрчлөх дараа та серверийг дахин ачаалах хэрэгтэй. Үгүй бол тохиргоо, хүчин төгөлдөр тэд серверийн ачаалал үед унших гэж байна.

Та сервер уруу SSH-ээр холбох замаар консол дээр үүнийг хийж чадна. Зүгээр л тушаал үйлчилгээ Ингэж нэлээдгүй нэрд эхлүүлнэ орж, дараа нь тохиргоо хүчин төгөлдөр болно.

Өөр нэг арга нь - ISP-самбарын дамжуулан, эсвэл тооцооны самбар үзүүлэгч дамжуулан дахин эхлүүлэх хэрэгтэй.

Array файл

PHP-д файл байршуулах массив $ _FILES хийж байна. Энэ нь бид татаж авах файлуудын тухай мэдээллийг агуулдаг.

массив, дараах файлын ажиллагаанаас бичих хангалттай д ямар мэдээлэл агуулагдаж байгааг харах хэрэгтэй.

ямар ч файлыг сонгож дарна уу "зургаа upload хийнэ." хариуцагчийн хуудсан дээр $ _FILES-д хадгалагдаж байгаа мэдээллийг харуулах болно. хувьсах үсгээр бүхэлд нь бичигдсэн байдаг. PHP - хэлний мэдрэмжтэй.

Таны харж байгаагаар, энэ нь массив дахь салбар нь маш их байдаг. Эдгээр нь бүгд бидэнд чухал ач холбогдолтой юм. Эхний талбар нь энэ нь таны компьютер дээр ашиглаж байгаа хэлбэрээр файлын нэрийг агуулдаг.

төрөл багана нь файлын төрлийг заасан. Tmp_name хээрийн түр зуурын файлын нэрийг харгалзана. скриптийн дууссаны дараа устгагдах болно.

алдаа талбар нь алдаа код агуулсан байна. Энэ нь бага зэрэг цаашид байсан юм. Хэмжээ - байтаар хэмжээ.

алдаа

PHP файл байршуулах дамжуулан гүйцэтгэдэг үргэлж алдаа код дагалдаж байна. "Алдаа" -д орсон нь алдаа зурвас. дэлгэцийн алдаа тэг байна.

бүх алдааны үнэ цэнийг авч үзье:

Энэ нь ердийн HTML-д заасан болно параметрийн тухай дээр хэлсэн юм.

Энд файл оруулагдсан файлын хэмжээний хязгаар харуулж байна татаж авахын тулд жишээ хэлбэр юм.

PHP: файл байршуулах скрипт

Бүх практикт явуулсан уу? PHP-д файл байршуулах хуулбар тушаалыг тохиолддог. эх файлыг болон очих файлыг - Хэрэв та хэрхэн файлыг татаж авах асуудлыг сонирхож байгаа бол, хариулт нь энгийн copy- хоёр параметрийг ашигладаг байна.

Гэвч дээрх заасан хувьд, энэ нь аюулгүй байдлын үүднээс хязгаарлагдмал байж болохгүй. Жишээ нь, файл ямар төрлийн бид татдаг, та массивт $ _FILES хээрийн төрлийг ашиглаж болно шалгах хэрэгтэй. Эхлээд шалгалтын шийдэх, дараа нь бүрэн скрипт уруу шилжихэд зөвшөөрөх

нь та хэрэглэгчид зөвхөн GIF, JPEG эсвэл PNG нь шийдвэрлэх нь зургийг байршуулахыг зөвшөөрөх хүсэж байна гэж үзье. Энэ мэт байж болно заана.

бол ($ _ FILES [ 'file_upload'] [ 'төрөл']! = "дүрс / GIF") {
"Уучлаарай, бид зөвхөн GIF-файлуудыг татаж дэмжлэг" харуулах;
гарах;
}

Та бүх 3 төрлийн татдаг хүсэж байгаа бол, зүгээр л зургийг нь бусад төрлийн нэмэлт нөхцлийг нэмнэ.

хуулбар (Зураг 1, зураг 2): хуулбарлах шиг энэ хийж байна.

Манай тохиолдолд ажил сервер рүү компьютерээсээ татаж авах үед, та үүнийг хийж чадна

хуулбар ($ _ FILES [ 'file_upload'] [ "tmp_name"], "1.jpg")

Энэ файлын нэр 1.jpg нь хуулж болно гэсэн үг юм. Энэ нь бүхэлдээ зөв биш юм. Энэ тохиолдолд энэ нь зөвхөн нэг жишээ юм. Файлын нэр нь өөр файл хамааран өргөтгөл зааж, мөн зааж өгөх нь чухал юм.

өргөтгөл өөр өөр арга зам байж болно тодорхойлно. Энэ нь бүх erudition нь хөгжүүлэгч хамаарна. (Секундын аравны нэг зөрүү) өргөтгөлтэй тодорхойлох хамгийн хурдан арга замуудын нэг нь - энэ нь дараагийн код байна.

$ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ "нэр"]);

$ Ext = $ path_info [ 'өргөтгөл'];

хувьсагч $ EXT бид хүссэн өргөтгөлтэй хадгалах болно. Файлын нэр нь санамсаргүй md5 ашиглан тохируулж болно. Та файлууд нь маш их татаж авах төлөвлөж байгаа бол энэ нь тэднийг өөр өөр хавтас татдаг нь илүү дээр юм. Тэгэхээр энэ нь илүү тохиромжтой байх болно. Ялангуяа, та ариусгах хүсэж байгаа бол.

кодыг дараах байдлаар байх болно татаж авах.

/// зураг нь

бол ($ _FILES [ 'photo1'] [ 'tmp_name'] == тэг)

{

цуурай ( "

<хүчтэй> тодорхойгүй файл.

Буцах Give ... ");

гарах;

}

///. сервер дээр ямар төслийн та ингэж хэлж том файлуудыг (видео) дуудах эрхтэй, гэхдээ зөвхөн зураг байдаг, мөн хэрэглэгчид хязгаарлах хэрэгтэй

бол (($ _FILES [ "photo1"] [ "хэмжээ"]> 1024 * 1024 * 2)

{

?>

хамгийн их зөвшөөрөгдөх хэмжээ <хүчтэй> 2 MB

Буцах Give ...

гарах;

}

// хавтас үүсгэх

// Одоогийн сарын фолдер үүсгэх

бол (! file_exists ( "Энд таны сурталчилгаа байрлана /". огноо ( "М")))

{

mkdir ( "Энд таны сурталчилгаа байрлана /" огноо ( "М").);

}

// одоогийн өдөр фолдер үүсгэх

бол (! file_exists ( "Энд таны сурталчилгаа байрлана /". огноо ( "М"). "/". огноо ( "D")))

{

mkdir ( "Энд таны сурталчилгаа байрлана /" огноо ( "М") "/" огноо ( "D") ...);

}

/// файлын өргөтгөл

$ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ "нэр"]);

$ Ext = $ path_info [ 'өргөтгөл'];

файлын нэр үүсгэх ///

$ Id = md5 (огноо ( "YMd"));

бол (хуулбар ($ _ FILES [ 'photo1'] [ "tmp_name"], "Энд таны сурталчилгаа байрлана /". огноо ( "М"). "/". огноо ( "D"). "/". $ ID. $ EXT) )

{

цуурай ( "амжилттай илгээгдсэн файлыг");

}

/// ямар ч цаашид арга хэмжээ (мэдээллийн санд оруулах, гэх мэт. Н.)

}

олон файл

Олон файлуудыг (PHP) оруулах хэлбэрээр нэмэлт салбарт замаар явагддаг.

Энэ арга нь татаж авах файлуудын тоог хязгаарлана гэж маш сайн биш юм. Түүнээс гадна, энэ програм муу хэлбэр гэж үздэг. динамик бүхнийг хийх гэж оролддог.

хамгийн тохиромжтой сонголт - энэ нь нэг товч дээр дарж нэг дор файлууд нь олон тооны сонголт юм.

Үүнийг хийхийн тулд энэ код шиг хэлбэр үүсгэнэ.

<Маягт арга = "POST" арга хэмжээ = "Link зохицуулагчийг гаргаж" нэр = "upload_form" enctype = "Олон / маягт-өгөгдлийг">

<Оролт анги = "form_upload" төрөл = "File" нэр = "file1 []" олон утга = "Тойм">

<Оролт анги = "form_upload" төрөл = "гаргаж" нэр = "upldFile" үнэ цэнэ = "нэмэх" />

үгийг олон нэмэлт гэдгийг анхаарна уу, нэр нь массив] [болгон өгсөн байна. Энэ тохиолдолд $ _FILES массив нь арай өөр байх болно. Та массив нь массив авах болно.

тест дахин var_dump ($ _ FILES) ашиглаж болно байх;

Таны бүх файлуудыг энэ мэт массив байрлуулж болно:

  1. $ _FILES [ "file1"] [ "нэр"] [0]
  2. $ _FILES [ "file1"] [ "нэр"] [1]
  3. Гэх мэт.

хаалтанд массив дахь файлын тоо бичигдсэн байна. тэгээс тоолох. Бид зүгээр л мөчлөг асууж, индекс нэмэх [$ Би] эцэст дээрх тодорхойлсон кодыг холбоо барьж, ижил замаар тэдэнд ханддаг.

$ I = 0;

харин ($ _FILES [ "file1"] [ "нэр"] [$ Би] <> '')

{

/// Дээрх кодыг оо

}

Тиймээс та кодын шаардлагагүй давтагдах ямар нэг мөчлөгийн сервер нь PHP файл байршуулах замаар ийм хэрэгтэй болно та файлууд нь статик тоо (сүүлийн фото) бүхий хувилбарыг ашигладаг бол ихэвчлэн тохиолдол юм байна.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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