Справочники, инструменты, документация

PHP: Самая простая загрузка файлов

Форма загрузки и отправки файла.

В форме надо обязательно указать атрибут enctype="multipart/form-data", иначе файлы не будут передаваться через форму. Также можно указать элемент формы с именем MAX_FILE_SIZE (обязательно перед элементом формы загрузки файла), где указывается допустимый размер загрузки файла. В первую очередь данный элемент нужен для того, чтобы сразу предупредить посетителя о превышении размера файла, не дожидаясь, пока сам файл не загрузится. Файл загружается через функцию move_uploaded_file().

<form enctype="multipart/form-data" action method="POST">
 <input type="hidden" name="MAX_FILE_SIZE" value="30000">
 <input name="userfile" type="file">
 <input type="submit" value="Send File">
</form>

<?php
if (isset($_FILES['userfile'])) {

 // Папка для загрузки файлов
 $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/uploads/';

 // Загрузка файла
 if (move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir.$_FILES['userfile']['name'])) {
 echo '<p>Файл успешно загружен</p>';
 }

}
?>

Если файл не загружается, надо убедиться, что установлены правильные права на папку, куда загружаются файлы (в системе Linux).

Другой вариант

<?php
 if ($_FILES['filename']['size'] > 3*1024*1024) {
 echo 'Файл больше 3 Мб!'; exit;
 }
 if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
 $newname = './upload/'.$_FILES['filename']['name'];
 move_uploaded_file($_FILES['filename']['tmp_name'], $newname);
 echo 'Файл загружен: '.
 '<a href="'.$newname.'" target="_blank">ссылка</a>';
 }
 else {
 echo 'Ошибка загрузки файла!'; exit;
 }
 echo '<br><a href="index.html">Назад</a>';
?>

<form action method="post" enctype="multipart/form-data">
 <input type="file" name="filename">
 <input type="submit" value="Загрузить">
</form>
На этой странице