| ||||||||||
Kapitola 19. Zpracovßnφ uploadu soubor∙Uploading metodou POSTPHP umo╛≥uje zpracovßnφ uploadu soubor∙ z jakΘhokoli prohlφ╛eΦe vyhovujφcφho RFC-1867 (co╛ zahrnuje mj. Netscape Navigator 3 a pozd∞j╣φ, Microsoft Internet Explorer 3 se zßplatou od Microsoftu, nebo pozd∞j╣φ bez zßplaty). Tato schopnost umo╛≥uje lidem uploadovat textovΘ i binßrnφ soubory. S autentizacφ poskytovanou PHP a s funkcemi pro manipulaci se soubory mßte plnou kontrolu nad tφm, kdo smφ uploadovat a co se mß ud∞lat s uploadovan²m souborem. Nezapome≥te, ╛e PHP podporuje takΘ uploady metodou PUT tak, jak se pou╛φvß v Netscape Composeru a v editoru Amaya od W3C. Pro bli╛╣φ detaily viz Podpora metody PUT. Obrazovka pro upload souboru m∙╛e b²t tvo°ena specißlnφm formulß°em, kter² vypadß podobn∞ jako tento:
Prom∞nnΘ definovanΘ pro uploadovanΘ soubory se li╣φ v zßvislosti na verzi a konfiguraci PHP. Pokud je aktivnφ volba track_vars, bude inicializovßno pole $HTTP_POST_FILES/$_FILES. KoneΦn∞, souvisejφcφ prom∞nnΘ mohou b²t inicializovßny jako globßlnφ, pokud je zapnuta volba register_globals. Ov╣em pou╛φvßnφ globßlnφch prom∞nn²ch nenφ doporuΦeno. Po ·sp∞╣nΘm uploadu budou v cφlovΘm skriptu definovßny nßsledujφcφ prom∞nnΘ:
$HTTP_POST_FILES/$_FILES obsahuje informace o uploadovanΘm souboru. Obsah $HTTP_POST_FILES je takov²to (uv∞domte si, ╛e se p°edpoklßdß pou╛itφ nßzvu uploadovanΘho souboru 'userfile' tak, jako v p°φkladu v²╣e):
Obsah prom∞nnßch v situaci, kdy je prom∞nnß register_globals zapnuta nastavenφm v souboru php.ini (uv∞domte si, ╛e se p°edpoklßdß pou╛itφ nßzvu uploadovanΘho souboru 'userfile' tak, jako v p°φkladu v²╣e):
Soubory se implicitn∞ uklßdajφ do systΘmovΘho adresß°e pro doΦasnΘ soubory, pokud nebylo direktivou upload_tmp_dir v souboru php.ini stanoveno jinak. SystΘmov² adresß° pro doΦasnΘ soubory m∙╛e b²t zm∞n∞n nastavenφ prom∞nnΘ prost°edφ TMPDIR v prost°edφ, kde PHP b∞╛φ. Nastavenφ za pou╛itφ putenv() z PHP skriptu nebude fungovat. Tato prom∞nnß prost°edφ m∙╛e b²t takΘ pou╛ita k uji╣t∞nφ se, ╛e v╣echny ostatnφ operace pracujφ s uploadovan²mi soubory.
PHP skript, kter² p°ijφmß uploadovanΘ soubory, by m∞l implementovat ve╣kerou logiku pro stanovenφ, co by se m∞lo ud∞lat s uploadovan²m souborem. M∙╛ete nap°. pou╛φt prom∞nnou $HTTP_POST_FILES['userfile']['size'] pro zahozenφ soubor∙, kterΘ jsou p°φli╣ malΘ nebo velkΘ. Mohli byste pou╛φt takΘ prom∞nnou $HTTP_POST_FILES['userfile']['type'] pro filtraci soubor∙ podle MIME datovΘho typu. Bez ohledu na °e╣enφ, soubor by m∞l b²t smazßn nebo p°esunut jinam. Soubor bude automaticky smazßn z doΦasnΘho adresß°e na konci skriptu, pokud nebyl p°esunut jinam nebo p°ejmenovßn. | ||||||||||
|