• Загрузка (upload) файла на сервер, через веб браузер.

  • Сегодня расскажу о том, как сделать простую загрузку (upload) файла на сервер.
    Цели:
  • 1) Написать форму.
  • 2) Написать скрипт, обрабатывающий форму.
  • 3) Запихнуть 1 и 2 цель в один файл.
  • Начинаем:

    <?

    # ВАЖНАЯ ИНФОРМАЦИЯ!

    # В вашем "php.ini" должны быть следующие три параметра:
    #
    # file_uploads = On
    #
    # ^ включаем поддержку загружаемых файлов.
    #
    # upload_tmp_dir = ПОЛНЫЙ_ПУТЬ_ДО_ПАПКИ_ГДЕ_БУДУТ_ХРАНИТЬСЯ_ЗАГРУЖАЕМЫЕ(ВРЕМЕННЫЕ)_ФАЙЛЫ
    #
    # ^ Например: upload_tmp_dir = d:/server/php/uploads
    #
    # и
    #
    # upload_max_filesize = 2M
    #
    # ^ Максимальный размер загружаемых файлов (в нашем случаем 2 МБ).

    // Куда сохраним файл?
    // Давайте в папке с этим скриптом,
    // создадим папку "files", туда-то и будем
    // сохранять все загружаемые файлы.

    $path=GetCWD()."/files";

        
    // Проверяем на существование папку $path

        
    if(!file_exists($path))
        die(
    "<b>Пожалуйста, создайте папку <font color=red>".$path."</font> и <a href=&#63;>повторите попытку загрузить файл</a>.</b>");

    // Выводим форму для загрузки файла.

    if(empty($_FILES['UserFile']['tmp_name']))
    echo
    "<form method=post enctype=multipart/form-data>
    Выберите файл: <input type=file name=UserFile>
    <input type=submit value=Отправить>
    </form>"
    ;

    // Если файл не загружен по каким-то причинам, выводим ошибку.

    elseif(!is_uploaded_file($_FILES['UserFile']['tmp_name']))
    die(
    "<b><font color=red>Файл не был загружен! Попробуйте <a href=&#63;>повторить попытку</a>!</font></b>");

    // Если файл удачно загружён на сервер, делаем вот что...

    else
    {
        
    // Переносим загружённый файл в папку $path

        
    if(@!copy($_FILES['UserFile']['tmp_name'],$path.chr(47).$_FILES['UserFile']['name']))

        
    // Если не удалось перенести файл, выводим ошибку:

        
    die("<b><font color=red>Файл не был загружен! Попробуйте <a href=&#63;>повторить попытку</a>!</font></b>");

        
    // Если всё Ok, то выводим инфо. о загружённом файле.

        
    else
        echo
        
    "<center><b>Файл \"<font color=red>".$_FILES['UserFile']['name']."\"</font> успешно загружён на сервер!</font></b></center>".
        
    "<hr>".
        
    "Тип файла: <b>".$_FILES['UserFile']['type']."</b><br>".
        
    "Размер файла: <b>".round($_FILES['UserFile']['size']/1024,2)." кб.</b>".
        
    "<hr><center><a href=&#63;>Загрузить ещё один файл!</a></center>";
    }
    ?>


    Дата публикации: 22.11.2003
    Автор статьи: Manlix