PHP Загрузка файлов на сервер

На PHP часто нужна загрузка файлов на сервер...приятно же, если у вашего сайта есть возможность загружать файлы на сайт: картинки или другие текстовые файлы или другие форматы...поговорим в этой статье об этом...

Итак нам нужно научиться загружать файл на сервер с помощью PHP. Для этого нам нужно знать, что такие загрузки происходят с помощью простой multipart-формы, у которой имеется специальное поле для загрузки файла.

<form action="" method="POST" enctype="multipart/form-data">
        <input type="file" name="uploadfile">
        <input type="submit" name="submit" value="Загрузить"></form>
</form>

загрузка файла на сервер

В качестве параметра enctype в такой форме нужно указывать значение multipart/form-data. Отправляется методом POST.

Как обрабатывать multipart-формы на PHP

После нажатия кнопки "Загрузать" PHP помещает файл во временную директорию и задает файлу временное имя(оно отличается от загружаемого - ниже будет видно). И сразу же создается 4 переменных глобального массива $_FILES:

  • $_FILES['uploadfile']['name'] - имя файла до его отправки на сервер (то есть оригинальное);
  • $_FILES['uploadfile']['size'] - размер принятого файла в байтах;
  • $_FILES['uploadfile']['type'] - MIME-тип принятого файла (если браузер смог его определить), например: image/gif, image/png, image/jpeg, text/html;
  • $_FILES['uploadfile']['tmp_name'] - содержит имя файла во временном каталоге, например: /tmp/php57Opq2Y;
  • $_FILES['uploadfile']['error'] - Код ошибки, которая может возникнуть при загрузке файла. Ключ ['error'] был добавлен в PHP 4.2.0.

Обратите внимание: после окончания работы скрипта загрузки файла на сервер - временный файл будет удален, поэтому необходимо скопировать этот файл из временной директории в какую-либо папку, например files при помощи функции copy(); Не нужно применять функцию move(), так как у copy в этот момент есть 2 преимущества: временный файл самостоятельно удалиться, и если временный каталог находится на другом носителе - то выведется ошибка.

Подсказка: процесс должен начинаться по условию нажатия кнопки "Загрузить", то ест к примеру: if($_POST['submit']){то выполняй действия}

Картинка, которая наглядно покажет 4 созданные переменные глобального массива $_FILES:

как загрузить файл на php

 Я думаю теперь все у вас прояснилось, что куда попадает и что-где создается...и далее манипулирую этими полями, можем начать работать с этой формочкой на php

 Примерно так может выглядеть сам скрипт:

if($_POST['submit']){
    @mkdir("files", 0777); // создаем папку, если ее нет то ошибки не будет, задаем права

    /*echo "<pre>";
    print_r($_FILES);
    echo "</pre>";*/
    $uploaddir = 'files/';
    $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);

    if(copy($_FILES['uploadfile']['tmp_name'], $uploadfile)){
        echo "<h3>Файл успешно загружен на сервер</h3>";
    }else{
        echo "<h3>Не удалось загрузить файл на сервер</h3>";
        exit;
    }

    //Данные о загруженном файле
    echo "<h3>Информация о загруженном на сервер файле: </h3>";
    echo "<p>Оригинальное имя загруженного файла:<b> ".$_FILES['uploadfile']['name']."</b></p>";
    echo "<p>Mime-тип загруженного файла:<b> ".$_FILES['uploadfile']['type']."</b></p>";
    echo "<p>Размер загруженного файла в байтах:<b> ".$_FILES['uploadfile']['size']."</b></p>";
    echo "<p>Временное имя файла: <b>".$_FILES['uploadfile']['tmp_name']."</b></p>";
}


Вот так вот и происходит процесс загрузки файла на сервер средствами PHP.

Надеюсь было кому-либо полезно!

 

Смотрите также:

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта PHP PHP Загрузка файлов на сервер