Главная страница статей --> Хитрости при программировании php, заметки по базам данных

Как через форму положить файл на сервер

Источник: realcoding.net

Один из частых вопросов, это как через форму положить файл на сервер. Делается это весьма легко, всего около 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=<?php print $php_self?> 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 Спасибо за файл <br>n;
    }
   
/* Если не правильно */
   
else {
    print
Не корректные данные <br> 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() - функция перемещает временный файл в туда, куда мы указываем. Первый параметр - что перемещаем, второй параметр - куда
перемещаем.



Похожие статьи:
- Классы в MySQL
- Как создать сайт? Советы для новичков
- Как зарабатывать деньги на сайте
- Asynchronous JavaScript and XML (AJAX)
- Контролируемая отдача файлов
- Подгрузка меню для сайта с фреймами
- Новый подход к веб-приложениям
- Создание таблиц Excel средствами PHP
- Серверные скрипты. Введение
- Оптимизация кода для поисковых систем
- Использование сессий в PHP
- Посещаемость сайта рефералами
- Все об AuthType или авторизация в Apache


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[-0.999]