Качване на файлове в PHP
изтегляне на файлове принципи
Всеки изтеглен файл ще бъде поставен в специална директория за временно съхранение, както и свързаните с тях информация се добавя към свръхглобална $ _FILES. Ако не преместите файла на друго място след завършване на програмата ще го изтриете без следа. временната настройка директория за съхранение определя upload_tmp_dir php.ini конфигурационен файл.
Свръхглобална $ _FILES масив
Ако се използва заедно с текущата заявка файловете са били изтеглени, PHP-преводач автоматично ще попълни свръхглобална $ _FILES масива на съответната информация. Неговата структура е съвсем проста. елементи на масива са имената на параметрите на HTTP заявка. Например, уеб форма съдържа поле за качване на файл с атрибута "име =" качите файл "». В този случай се добавя информация на $ _FILES [ 'качване файл'].
Съдържанието на масива $ _FILES на:
- $ _FILES [ 'поле заявка'] [ 'име'] - истинското име на файла, който трябваше да бъде изпратен.
- $ _FILES [ 'поле заявка'] [ 'размер'] - размера на качения файл в байтове.
- $ _FILES [ 'поле заявката "] [" тип "] - на MIME тип на файла.
- $ _FILES [ 'поле заявка'] [ 'tmp_name'] - съдържа името на файла, който го е назначил преводач, когато е поставен в една временна директория;
- $ _FILES [ 'поле заявка'] [ 'грешка'] - кодът на Възникна грешка при зареждане. Ако всичко върви добре, елементът ще има стойност "0".
Уеб поле форма може да има няколко атрибута. даде възможност за многократно избор на файлове. В такъв случай, елементите име. размер. пишете. tmp_name и грешката ще бъде масиви. Например, два файла се изтеглят през полето на формуляра с името на тест-файл. Вземете името на първия файл може да бъде в $ _FILES [ "тест-файл '] [' име '] [0]. втори $ _FILES [ "тест-файл '] [' име '] [1].
бележка
Има едно изискване за HTML-маркиране полета, извършване на множествена селекция и сваляне на файлове. Тяхното име на атрибут трябва да бъде съставен, както следва «име =" - име на атрибут [] "." Ако пропуснете структурата []. PHP ще обработва само един файл.
Преместете изтегления файл
За да преместите свалените файлове имат функция специална move_uploaded_file (). Това отнема два задължителни параметър низ. Първият показва името на файла, в временната директория, а вторият - път на дестинация. Функцията връща истина, ако успешно и невярно. ако възникне грешка.
С is_uploaded_file (функция), можете да проверите дали изтегления файл в текущата заявка. Това отнема само един параметър - името на файла и се връща булева резултат.
важно
PHP ви позволява да промените местоположението на свалените файлове с нормалните функции на копиране или преместване. Въпреки това, той е доста опасно. Има редица uhischronnyh атаки на базата на такъв късоглед подход.
За да преместите и да провери наличието на свалените файлове Винаги използвайте move_uploaded_file () и is_uploaded_file (). В процеса на изпълнение те изпълняват разширено валидиране и автоматично се отсеят редица общи атаки.
Пример за изтегляне на файлове на сървъра,
По-долу е пример PHP-скрипт. Ако се ползва за първи път в текущата заявка не е за качване на файлове, потребителят ще се образува. При изтегляне, файлът се премества в основната директория на сайта, както е показано на потребителя на информация, свързана с него. Само обработват изображения във формати JPG. JPEG и PNG.
Сподели в sotscetyah: