Úvod do nahrávání souboru v PHP
V PHP mohou uživatelé nahrávat soubory pomocí funkce nahrávání souborů a souboru, který musí být odeslán prostřednictvím formuláře a je snadno připojen a nahrán. Uživatel může nahrát mnoho typů souborů, které mohou být ve formě dokumentu, obrazové formy, formátu pdf atd. Tyto soubory přicházejí s příponou, např. .Docx, .jpeg.webp, .pdf atd. Tento druh souboru je ověřen forma a velikost souboru je nastavena tak, aby nebylo možné nahrávat více než tato velikost. Toto je pokročilá funkce pro uživatele, který dříve zadával data ručně, se nyní rozhodne pro tuto možnost.
Jak vytvořit nahraný soubor v PHP?
S PHP je velmi snadné nahrávat soubory na server pomocí formuláře a data jsou také ve srovnání s ostatními bezpečná. Konfigurační soubor „php.ini“ má proměnnou, která musí být nastavena pro soubory, které mají být nahrány, a nazývá se „file_uploads“, které by mělo být nastaveno na ON, aby bylo možné funkci uploadu. Pro nahrání souboru na server máme několik kroků.
Před nahráním souboru na server pomocí formuláře existuje několik kontrol. Tyto kontroly se nazývají ověření souboru, který je nahrán.
Níže jsou uvedeny některé důležité body, které vývojářské kódy ověřují ve formuláři:
1. File_uploads
Hodnota této proměnné by měla být pro soubory, které mají být nahrány, zapnuta. Pokud není zapnutý, nelze soubor nahrát na server. Takže by to mělo být vždy ZAPNUTO.
2. Nahrajte maximální velikost
Tato směrnice se používá ke konfiguraci maximální velikosti souboru, který lze na server odeslat pomocí formuláře. Je to druh kontroly provedené, aby bylo vidět velikost souboru nahraného uživatele. Výchozí velikost souboru je nastavena na 2M (dva megabajty) a toto nastavení můžeme přepsat pomocí souboru .htaccess, kde vývojář může zvětšit velikost souboru. Dva megabajty nejsou v dnešních standardech tolik, takže bychom to museli zvýšit. Pokud se při pokusu o nahrání souboru zobrazí chyba, která uvádí, že velikost souboru přesahuje upload_max_filesize, je třeba hodnotu zvýšit. Pokud tak učiníte, nezapomeňte také zvýšit post_max_size.
3. Upload_tmp_dir
Nastavuje dočasný adresář, který bude použit k ukládání nahraných souborů uživatelem. Ve většině případů se ale nemusíme starat o toto nastavení. Pokud to nenastavíme, výchozí nastavení systému automaticky nastaví dočasný adresář, který lze použít.
4. Post_max_size
Směrnice post_max_size nám umožňuje nastavit maximální velikost dat nahraných metodou POST. Protože se soubory načítají na základě požadavků POST, musí být hodnota větší než hodnota, kterou jsme nastavili pro upload_max_filesize. Pokud je například upload_max_filesize 20M (20 megabajtů), možná bude třeba nastavit post_max_size na 24M.
5. Max_file_uploads
To vám umožní nastavit maximální počet souborů, které může uživatel nahrát na jeden tah. Výchozí počet je 20 pro uživatele současně.
6. Max_input_time
Je to počet sekund, po které může skript analyzovat vstupní data uživatele. Měli bychom to nastavit na rozumnou hodnotu, pokud jednáme o velké velikosti nahrávání souborů. 60 (60 sekund) a je to dobrá hodnota pro většinu aplikací.
7. Memory_limit
Směrnice o omezení paměti ukazuje, že maximální množství paměti, které skript může na serveru spotřebovat. Pokud při jakémkoli nahrávání velkých souborů čelíme problémům, musíme nastavit hodnotu direktivy větší, než jakou jsme nastavili pro direktivu post_max_size. Ve výchozím nastavení je tato hodnota nastavena na 128M (128 megabajtů), takže pokud nebudeme mít příliš velkou post_max_size a upload_max_filesize, nemusíme se o to starat.
8. Max_execution_time
Tato směrnice se používá na maximální počet sekund, kdy je skript na serveru povolen. Pokud během nahrávání velkých souborů čelíme problémům, můžeme zvážit zvýšení hodnoty na více sekund, jako je 60 (1 minuta), a to by mělo fungovat pro většinu aplikací.
Příklady upload souboru v PHP
Některé příklady jsou uvedeny níže:
Příklad č. 1
Kód:
Select any image to upload:
Výstup:
Příklad č. 2
Kód:
Photo Upload Form
Upload File
Filename:
Photo Upload Form
Upload File
Filename:
Photo Upload Form
Upload File
Filename:
Photo Upload Form
Upload File
Filename:
Poznámka: Pouze formáty .jpg.webp, .jpeg.webp, .gif, .png.webp mohou mít maximální velikost o 2 MB větší, než kterou nelze nahrát.
Výstup:
Příklad č. 3
Kód:
Select a file to upload:
Výstup:
Příklad č. 4
Kód:
<_?php$target_path = "c:/";
$target_path = $target_path.basename( $_FILES('fileToUpload')('name'));
if(move_uploaded_file($_FILES('fileToUpload')('tmp_name'), $target_path)) (
echo "File has been uploaded successfully!";
)
else
(
echo "Sorry, file not uploaded, please check and try again!";
)
?>
Výstup:
Ve výše uvedených příkladech může uživatel vidět obrazovku, která je přítomna ve snímcích. Uživatelé připojí dokument kliknutím na možnost „vybrat soubor“. Soubor se připojí, jakmile uživatel vybere soubor ze svého místního počítače a klepnutím na tlačítko Nahrát odešle dokumenty na server. Uživatel bude poté vyzván k oznámení, že soubor byl úspěšně nahrán.
Závěr
V tomto článku jsme diskutovali o tom, jak může uživatel nahrát soubor na server pomocí formuláře a jak lze nahraný soubor ověřit v různých formách a serverová omezení pro upload souboru. Uživatel nemusí rozumět procesu backendu, ale vývojář musí kódovat tak, aby dokument nahraný uživatelem měl být správný a data byla zabezpečena.
Doporučené články
Toto je průvodce pro upload souboru v PHP. Zde diskutujeme úvod, jak vytvořit upload soubor v PHP, příklady upload souboru v PHP. Další informace naleznete také v dalších navrhovaných článcích -
- Cloud Security Tools
- Interní propojení v SEO
- Rozvržení HTML
- Formulář PHP