| Прехвърляне на файлове в php |
|
Методът POST Тази опция ще позволи транспортирането както на текстови, така и на файлове с друго съдържание. Чрез функциите на PHP ще имате пълен конгрол над това кой ще има право за транспортиране на файлове, а също и над това какво да бъде направено с транспортираните файлове. PHP е способно да получава ъплоаднати файлове от всеки браузер, който подържа RFC-1867 (което включва Netscape Navigator 3 или следващите му версии, Microsoft Internet Explorer 3 с разширение от Microsoft или по-късните му версии). Пример 1. Форма за ъплоадване на файлове <!-- Типът на енкодинга ТРЯБВА да бъде специфициран както е посочено по-надолу --> В случая __URL__ трябва да бъде заменено и насочено към съответния .php файл. Заблежка: Във вашата форма за трансфер на файлове задължително трябва да присъства атрибута enctype="multipart/form-data", в противен случай трансфера няма да се осъществи. Общата променлива $_FILES съществува след PHP 4.1.0 (Вместо нея използвайте $HTTP_POST_FILES в по-ранни версии). Този масив ще съдържа цялата информация за ъплоаднатате файлове. Съдържанието на $_FILES от примерната форма е показано по-надолу. Обърнете внимание, че за име на транспортирания файл се използва userfile, което е посочено в примерния скрипт по-горе. $_FILES['userfile']['name'] оригиналното име на файла на клиентската машина. $_FILES['userfile']['type'] типът на файла – ако браузерът осигурява тази информация. Например може да бъде "image/gif". Така или иначе на сървъра не се извършва проверка за коректността на тези данни, така че не ги приемайте за сигурни. $_FILES['userfile']['size'] размерът в байтове на транспортирания файл. $_FILES['userfile']['tmp_name'] временно име на файла, с което той бива складиран на сървъра $_FILES['userfile']['error'] Код за грешка асоцииран с трансфера. Този елемент е добавен в PHP 4.2.0 По подразбиране транспортираните файлове ще бъдат складирани в общата temp директория на сървъра, с случай, че не бъде изрично посочена друга чрез променливата upload_tmp_dir в php.ini. Подразбиращата се temp директория на сървъра може да бъде променена чрез задаване на променливата на средата TMPDIR, в която PHP стартира. Ако я зададем използвайки putenv() вътре в скрипта, той няма да работи. Пример 2. Валидация на транспортирания файл. <?php $uploaddir = '/var/www/uploads/'; echo '<pre>'; echo 'Here is some more debugging info:'; print "</pre>"; ?>
Ако във вашата форма не е посочен файл за трансфер, PHP ще върне $_FILES['userfile']['size'] като 0 и $_FILES['userfile']['tmp_name'] като празна стойност. След края на заявката файлът във временната директория ще бъде изтрит в случай, че не е преместен другаде или преименуван.
<form action="" method="post" enctype="multipart/form-data"> ?> |
| < Предишна | Следваща > |
|---|
|
Апостол Тноковски се опитва да отговори на този въпрос, представяйки концептуален модел на компютър във формата на топка. |
|
| Продължава... |