Разрешить загрузку файлов с помощью PHP

01
из 06

HTML-форма

Если вы хотите разрешить посетителям вашего веб-сайта загружать файлы на ваш веб-сервер, вам необходимо сначала использовать PHP для создания HTML-формы, которая позволяет люди, чтобы указать файл, который они хотят загрузить. Хотя весь код собирается позже в этой статье (вместе с некоторыми предупреждениями о безопасности), эта часть кода должна выглядеть так:

Пожалуйста, выберите файл:

Эта форма отправляет данные на ваш веб-сервер в файл с именем «upload.php», который создается на следующем шаге.

02
из 06

Загрузка файла

Фактическая загрузка файла проста. Этот небольшой фрагмент кода загружает файлы, отправленные ему вашей HTML-формой.

$ target = “upload/”;
$ target = $ target. базовое имя ($ _FILES [‘загружено’] [‘имя’]);
$ ok = 1; if (move_uploaded_file ($ _ FILES [‘загружено’] [‘tmp_name’], $ target))
{
echo “Файл”. базовое имя ($ _FILES [‘загруженный файл’] [‘имя’]). “был загружен”;
}
else {
echo “Извините, возникла проблема с загрузкой вашего файла.”;
}
? >

В первой строке $ target = “upload/”; вы назначаете папку, в которую загружаются файлы. Как вы можете видеть во второй строке, эта папка относится к файлу upload.php . Если ваш файл находится на www.yours.com/files/upload.php, он будет загружать файлы на www.yours.com/files/upload/yourfile.gif. Убедитесь, что вы не забыли создать эту папку.

Затем вы переместите загруженный файл туда, где он находится, с помощью move_uploaded_file () . Это помещает его в каталог, указанный в начале скрипта. Если это не удается, пользователю выдается сообщение об ошибке; в противном случае пользователю сообщается, что файл был загружен.

03
из 06

Ограничьте размер файла

Вы можете ограничить размер файлов, загружаемых на ваш сайт. Предполагая, что вы не изменили поле формы в HTML-форме – поэтому оно по-прежнему называется «загружено» – этот код проверяет размер файла. Если размер файла превышает 350 КБ, посетителю выдается ошибка «слишком большой файл», и код устанавливает для $ ok значение 0.

if ($ uploaded_size> 350000 )
{
echo “Ваш файл слишком велик.
“;
$ ok = 0;
}

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

04
из 06

Ограничить файлы по типу

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

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

if ($ uploaded_type == “text/php”)
{
echo “Нет файлов PHP
“;
$ ok = 0;
}

В этом втором примере разрешено загружать на сайт только файлы GIF, а для всех остальных типов перед установкой $ ok в 0.

if (! ($ uploaded_type == “image/gif”)) {
echo “Вы можете загружать только файлы GIF.
“;
$ ok = 0;
}

Вы можете использовать эти два примера, чтобы разрешить или запретить любые определенные типы файлов.

05
из 06

Собираем все вместе

Собираем все вместе вы получите следующее:

$ target = “upload/”;
$ target = $ target. basename ($ _FILES [‘uploaded’] [‘name’]);
$ ok = 1;
//Это наше условие размера
if ($ uploaded_size> 350000)
{
echo “Ваш файл слишком велик.
“;
$ ok = 0;
}
//Это это наше условие ограничения типа файла
if ($ uploaded_type == “text/php”)
{
echo “Нет файлов PHP
“;
$ ok = 0;
}
//Здесь мы проверяем, что $ ok не был установлен в 0 из-за ошибки
if ($ ok == 0)
{
Echo “Извините, ваш файл не был загружен”;
}
//Если все в порядке, мы пытаемся загрузить его
else
{
if (move_uploaded_file ($ _ FILES [‘uploaded’] [‘tmp_name’], $ target))
{
echo “Файл”. базовое имя ($ _FILES [‘загруженный файл’] [‘имя’]). “был загружен”;
}
else
{
echo “Извините, при загрузке вашего файла возникла проблема.”;
}
}
?>

Прежде чем добавлять этот код на свой веб-сайт, вам необходимо понять последствия для безопасности, описанные на следующем экране.

06
из 06

Последние мысли о безопасности

Если вы разрешаете загрузку файлов, вы оставляете себя открытым для людей, желающих выгружать нежелательные вещи. Одна из разумных мер предосторожности – не разрешать загрузку любых файлов PHP, HTML или CGI, которые могут содержать вредоносный код. Это обеспечивает некоторую безопасность, но не является надежной защитой.

Еще одна мера предосторожности – сделать папку загрузки частной, чтобы ее могли видеть только вы. Затем, когда вы увидите загрузку, вы можете одобрить – и переместить – или удалить. В зависимости от того, сколько файлов вы ожидаете получить, это может занять много времени и непрактично..

Этот сценарий, вероятно, лучше всего хранить в личной папке. Не размещайте его там, где его может использовать публика, иначе вы можете получить сервер, полный бесполезных или потенциально опасных файлов. Если вы действительно хотите, чтобы широкая публика могла загружать данные на ваш сервер, укажите как можно больше безопасности.

Оцените статью
recture.ru
Добавить комментарий