DataLife Engine > PHP > Как через форму положить файл на сервер
Как через форму положить файл на сервер1 марта 2008. Разместил: podpole |
Один из частых вопросов, это как через форму положить файл на сервер. Делается это весьма легко, всего около 10 строк кода и php скрипт готов. И при этом ничего кроме php вам не понадобится. Для начала сразу оговорюсь, этот пример будет работать только в php версии 4.0.3 и выше. Получается это из за использования двух новых функций move_uploaded_file() и is_uploaded_file(). Но поверьте, оно этого стоит, а php все таки желательно обновлять. Итак сам код php скрипта выглядит следующим образом: <?php /* Куда сохраняем файлы */ $store_dir='c:/temp/upload/'; /* Если нам не передали файл, то покажем форму */ if (!$user_file) { ?> < form action="" method="post" enctype="multipart/ form-data"> < input type="file" name="user_file">< input type="submit"> <!-- form <?php } /* Если передали файл */ else { /* Проверим все ли правильно */ if (is_uploaded_file($user_file)) { /* Переместим файл */ move_uploaded_file($user_file, $store_dir.$user_file_name); /* Скажем об этом */ print "Спасибо за файл n"; } /* Если не правильно */ else { print "Не корректные данные n"; } } ?> Рассмотрим кто и что у нас тут значит: $user_file - эта переменная (имя берется из формы) содержит путь к временному файлу который мы закачиваем на сервер. Путем приставки к этой переменной суффиксов _name, _size, _type мы можем получить и другую дополнительную информацию. Например: $user_file_name - оригинальное имя файла. $user_file_size - размер файла в байтах. $user_file_type - mime тип файла, например "image/gif". is_uploaded_file() - функция возвращает true или false и используется для проверки правильности передаваемого файла. Так например если файл действительно передан нам через http post, то вы получите true. Ну а в противном случае, например если вам попытались передать что то не то, например комбинацию из параметров для получения /etc/passwd - то вы получите false. move_uploaded_file() - функция перемещает временный файл в туда, куда мы указываем. Первый параметр - что перемещаем, второй параметр - куда перемещаем. |