Качване на файлове в PHP

Как да съхранявате 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: