Faylni tanlang - File select

Yilda HTML, faylni tanlash nazorati a ning tarkibiy qismidir veb-shakl bu bilan foydalanuvchi mahalliy faylni tanlashi mumkin. Shakl yuborilganda (ehtimol boshqa shakl ma'lumotlari bilan birga), faylga yuklanadi veb-server. U erda, fayl kelganda, odatda veb-serverda faylni saqlash kabi ba'zi harakatlar amalga oshiriladi. Biroq, sodir bo'ladigan muayyan harakat server tomonidagi skript anketa topshirilgan.

Kod misoli

Faylni tanlash nazorati bilan veb-shaklning kod namunasi. Bu kiritish bilan element type = "file" faylni tanlash boshqaruvini yaratadigan.

<shakl harakat="form-handler.php" usul="post" shifrlash="multipart / form-data">	<div>		<kiritish id="myfile" ism="myfile" turi="fayl">		<kiritish qiymat="Yuklash ►" turi="topshirish">	</div></shakl>

Renderlash

Fayl tanlagan boshqaruv elementining ekranida ko'rsatilishi haqida gap ketganda, ular orasida bir oz farq bor veb-brauzerlar. Odatda, Windows-ga asoslangan platformada foydalanuvchi agentlari "Ko'zdan kechirish" tugmachasi bilan birga matn maydoni sifatida fayl tanlagan boshqaruvni amalga oshiradilar. "Browse" tugmasi bosilganda, a fayl oynasi ochiladi, shu bilan platformada haqiqiy fayl tanlovi amalga oshirilishi mumkin. Tanlashdan so'ng, tanlangan faylning fayl nomi matn maydonida ko'rsatiladi. Shu bilan bir qatorda, "Ko'zdan kechirish" tugmachasini ishlatish o'rniga fayl nomini to'g'ridan-to'g'ri matn maydoniga kiritish mumkin.

Ba'zi brauzerlar, xususan Firefox,[1] endi fayl nomini to'g'ridan-to'g'ri terishga yo'l qo'ymaslik. Bu xavfsizlik chorasi - maxfiy ma'lumotlarni yuklash uchun foydalanuvchini aldash mumkin.[2]

Funktsionallik

Dastlab fayllarni formaga yuklash mexanizmi dastlab taklif qilingan RFC 1867 (1995 yil noyabrda nashr etilgan), HTML 2.0 kengaytmasi sifatida (RFC 1866 ), nashr etilganidan keyin. Shaklga asoslangan fayllarni yuklash keyinchalik HTML 3.2-ga kiritilgan bo'lib, u to'g'ridan-to'g'ri murojaat qiladi RFC 1867 shaklga asoslangan faylni yuklash haqida qo'shimcha ma'lumot olish uchun.

HTML 4.01 o'z-o'zidan faylni tanlash elementi qanday ishlashi kerakligini ta'riflamaydi, lekin u ro'yxatlangan RFC 2388 va RFC 1867 ma'lumotnomalar sifatida.[3]

Bir nechta faylni tanlash

Niyat RFC 1867 Faylni tanlashni boshqarish elementi bir nechta faylni tanlashga imkon berishi kerak. Ushbu niyat HTML-4.01-da aks ettirilgan ko'rinadi, unda faylni tanlash uchun boshqaruv turi yoziladi[4]

Ushbu boshqaruv turi foydalanuvchiga fayllarni tanlashga imkon beradi, shunda ularning tarkibi shakl bilan birga yuborilishi mumkin. INPUT elementi fayllarni tanlash boshqaruvini yaratish uchun ishlatiladi.

Qayd etilgan[5] yuqoridagi iqtibosdagi "fayllar" ning ko'pligi HTML 4.01-da bitta faylni tanlash-boshqarish hali bitta faylni emas, balki bir nechta fayllarni tanlashni amalga oshirishi kerakligidan dalolat beradi.

Ushbu holat HTML5-da, fayl kiritishda bir nechta faylni qabul qilishi kerak bo'lganida "bir nechta" atributini qo'shish orqali aniqlanadi. Amaldagi loyihada yangi xatti-harakatlar quyidagicha belgilanadi:

Agar bir nechta atribut o'rnatilmagan bo'lsa, tanlangan fayllar ro'yxatida bitta fayl bo'lishi kerak.[6]

Xususiyatni qabul qiling

RFC 1867 ham tanishtirdi qabul qilish uchun atribut kiritish element. Bu fayl turidagi filtrlashni yoqadi MIME turi faylni tanlashni boshqarish uchun.

Bundan tashqari, INPUT yorlig'ida vergul bilan ajratilgan media turlarining ro'yxati bo'lgan ACCEPT atributiga ega bo'lish taklif etiladi.

Agar ACCEPT atributi mavjud bo'lsa, brauzer platforma uchun mos keladigan fayl kengaytmalariga mos keladigan fayl naqshlarini cheklashi mumkin.

Shunday qilib, foydalanuvchi agenti fayllarni tanlashni cheklashi mumkin, masalan, quyidagi kabi, GIF va PNG rasmlari yoki har qanday rasmlar bilan cheklangan:

<kiritish id="myfile" ism="myfile" turi="fayl" qabul qilish="image / gif, image / png"><kiritish id="myfile" ism="myfile" turi="fayl" qabul qilish="image / *">

Windows platformasida bu foydalanuvchi agenti fayllarni faqat "Browse-file" dialog oynasida ko'rsatilgan turdagi ko'rsatishini anglatishi mumkin.

Brauzer cheklovlari

Faylni tanlashni boshqarish uchun asosiy yordam brauzer sotuvchilari tomonidan tezda qabul qilindi. Masalan, allaqachon Internet Explorer 4,[7] Netscape Navigator 2.0 va Opera 3.5[8] tanigan kiritish elementi type = "file" faylni tanlash nazorati sifatida.

Biroq, zamonaviy brauzerlarning aksariyati hali ham fayllarni tanlashni boshqarish dasturini mo'ljallanganidek amalga oshirmayapti yoki ba'zi xususiyatlarga ega emas.[5]

Bir nechta faylni tanlash mumkin emas

Faylni tanlashni boshqarish vositasi bilan bir nechta fayllarni shaklga yuklash Chrome, Firefox, Internet Explorer, Safari va Opera-ning joriy versiyalarida qo'llab-quvvatlanadi. Bir manbada aytilgan[5] Opera bitta faylni tanlash nazorati orqali bir nechta fayllarni tanlashni qo'llab-quvvatlaydi. Bu Opera-ga fayllarni yuklash xususiyati joriy qilingan 3.5dan boshlangan versiyalariga tegishli edi.[8] Ammo Opera 7-ning birinchi beta-versiyasi bilan ushbu funktsiya endi mavjud emas edi. Firefox 3.6 versiyasi bir nechta fayllarni tanlashni qo'llab-quvvatlashni boshladi,[9] serverga yuklanishidan oldin dasturchilarga fayllarga cheklangan kirish huquqini berish HTML5 File API.[10] Ushbu xususiyat shuningdek, foydalanuvchilarga tashqi dasturlardan fayllarni sudrab olib tashlashga imkon beradi (masalan Windows Explorer ) to'g'ridan-to'g'ri veb-dasturga. Ushbu funktsiyani qo'llab-quvvatlashning muhim misollaridan biri Gmail qo'shimchalarni shu tarzda qo'shishga imkon beradi.

HTML5-dan foydalanib bir nechta fayllarni yuklashga imkon beradi bir nechta kirish elementlaridagi atribut.[11]

JavaScript-ni muqobil

Bitta yechim - foydalanish mijoz tomonidagi skript kabi JavaScript foydalanuvchi yuklash uchun tanlagan har bir fayl uchun qo'shimcha fayllarni tanlash boshqaruvini yaratish uchun. Foydalanish CSS, ushbu qo'shimcha faylni tanlash elementlari ko'rsatilmasligi uchun o'rnatilishi mumkin. Ushbu texnikaning namunasi Bir nechta fayllarni yuklash plaginlari uchun jQuery. Shu tarzda, bir nechta fayllarni yuklash muammosi foydalanuvchida yuklash uchun fayllar mavjud bo'lsa, shuncha faylni tanlashni boshqarish vositalarini taqdim etish yo'li bilan hal qilinadi. Shunga qaramay, bu Internet Explorer-da yuklash uchun bir nechta fayllarni tanlash muammosini hal qilmaydi.

Xususiyatlarni qo'llab-quvvatlashni qabul qiling

Qabul qilish atributi hozirda Opera 11+, Chrome 16+, Safari 6+, Firefox 9+ va Microsoft Internet Explorer 10+ tomonidan qo'llab-quvvatlanadi.

Adabiyotlar

  1. ^ "388784 - (CVE-2007-3511) Firefox fayllarni kiritish fokusini o'g'irlash". Bugzilla.mozilla.org. Olingan 2013-09-02.
  2. ^ "Mozilla Firefox OnKeyDown voqea fayllarini yuklashning zaifligi". Juniper.net. 2010-11-15. Arxivlandi asl nusxasi 2013-02-21. Olingan 2013-09-02.
  3. ^ "HTML 4 spetsifikatsiyasi bo'yicha ma'lumotnomalar". W3.org. Olingan 2013-09-02.
  4. ^ "HTML hujjatlardagi shakllar". W3.org. Olingan 2013-09-02.
  5. ^ a b v "HTML shakllaridagi fayllarni kiritish (yoki" yuklash ")". Cs.tut.fi. Olingan 2013-09-02.
  6. ^ "HTML 5.1 spetsifikatsiyasi". W3C.
  7. ^ "kiritish turi = fayl ob'ekti". Msdn2.microsoft.com. 2013-07-22. Olingan 2013-09-02.
  8. ^ a b "Brauzer tarixi: Opera". Blooberry.com. Olingan 2013-09-02.
  9. ^ 2009 yil 10 dekabrda Pol Ruget (2009-12-10) tomonidan. "Firefox 3.6-da bir nechta fayl kiritish, Mozilla Hacks - veb-ishlab chiquvchi blog". Hacks.mozilla.org. Olingan 2013-09-02.
  10. ^ "Veb-ilovalardan fayllardan foydalanish - MDC". Tuzuvchi.mozilla.org. 2013-08-23. Olingan 2013-09-02.
  11. ^ HTML 5.1 spetsifikatsiyasi: 4.10.5.3 Umumiy kirish elementi atributlari

Tashqi havolalar