Закрыть ... [X]

Как сделать загрузку html


Опубликовано: 21.04.2018, 05:21/ Просмотров: 1365

Закрыть ... [X]

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

Оглавление: Форма загрузки файла Правила для загрузки файла Обработчик данных веб-формы Удалить файлы из папки

Пример загрузки файла на сервер безопасный и довольно прост. Можно добавить новые условия и разрешить загружать изображения GIF и PNG, или любой другой вид файлов, которые Вы хотите. Если Вы не знакомы с PHP, этот пример может быть хорошим началом.

Форма загрузки файла

Читайте также: Изменить размер

HTML форма для загрузки файла на сервер в качестве пользовательского интерфейса. Посмотрите на пример ниже, и сохраните этот код HTML в файл index.php.

<form enctype="multipart/form-data" action="upload.php" method="post"> <!--для сервера--> <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /><!--максимально допустимый размер файла для загрузки в байтах--> Выбрать файл для загрузки: <input name="uploaded_file" type="file" /><!--файл для загрузки--> <input type="submit" value="Отправить" /><!--кнопка загрузки--> </form> К началу Правила для загрузки файла

Существуют несколько правил, которым нужно следовать при построении формы HTML.

Метод веб-формы должен быть POST. Атрибут для веб-формы enctype="multipart/form-data". Он указывает какой тип передаётся на сервер.

без этих требований загрузка файла не будет работать.

Атрибут тега Input: type="file" применяется для выбора файла кнопкой “Обзор”

Следующее поле скрытое, с аргументом max_file_size. Некоторые браузеры читают значение этого поля, и не позволят пользователю загрузить файл больше чем указано value="1000000" (в байтах). Указанное значение для скрытого поля не должно быть больше чем установлено в вашей версии PHP. Узнать версию PHP можно набрав в адресной строке: http://ваш_домен/phpinfo.php.

Дальше, в файле php.ini есть параметр upload_max_filesize его значение по умолчанию 2 МБ. Но этот параметр не гарантирует, что для скрипта не будет передан файл большего размера. Опасность в том, что злоумышленник может отправить несколько больших файлов за один запрос и заполнить файловую систему, в которых PHP хранит декодированные файлы. Поэтому в директиве php.ini параметр post_max_size установите больше, чем указан для upload_max_filesize. Эта директива определит максимальный размер POST данных в одном запросе. Также убедитесь, что file_uploads в файле php.ini включен.

Параметр post_max_size в файле php.ini Параметр post_max_size должен быть установлен больше чем upload_max_filesize Параметр upload_max_filesize Параметр upload_max_filesize его значение по умолчанию 2 МБ

После того как пользователь отправил выбранный файл на сервер, обработчик PHP в файле upload.php будет обрабатывать данные веб-формы.

К началу Обработчик данных веб-формы

После загрузки файла на сервер PHP создаст временную копию файла. Суперглобальный массив $_FILES будет содержать информацию о файле. Для обработки информации о файле есть пять данных.

$_FILES["uploaded_file"]["name"] оригинальное название загруженного файла с компьютера пользователя. $_FILES["uploaded_file"]["type"] тип загружаемого файла. $_FILES["uploaded_file"]["size"] размер загружаемого файла в байтах. $_FILES["uploaded_file"]["tmp_name"] место, где файл будет сохранен на сервере. $_FILES["uploaded_file"]["error"] код ошибки при отправки файла.

Посмотрите на пример ниже, и сохраните этот код PHP в файл upload.php.

<?php // проверяем, что есть файл if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) { // проверяем, что файл это изображение JPEG и его размер не больше 350кб $filename = basename($_FILES['uploaded_file']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") && ($_FILES["uploaded_file"]["size"] < 350000000)) { // путь для сохранения файла $newname = dirname(__FILE__).'/upload/'.$filename; // проверяем, файл с таким названием уже есть на сервере if (!file_exists($newname)) { // переместить загруженный файл в новое место if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) { echo "Прелестно, файл был загружен: ".$newname; } else { echo "Произошла ошибка при загрузке файла!"; } } else { echo "Ошибка: файл ".$_FILES["uploaded_file"]["name"]." уже существует"; } } else { echo "Ошибка при загрузке файла, изображение не .jpg или больше чем 350кб."; } } else { echo "Ошибка: файл не загружен!"; } ?>

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

Структура файлов для загрузки изображения на сервер.

— — upload
— — index.php
— — upload.php

К началу Удалить файлы из папки

Если потребуется удалить все загруженные файлы из папки upload. Добавьте в каталог новый файл delete.php с кодом.

<?php if (file_exists('./upload')) foreach (glob('./upload/') as $file) unlink($file); $var = 'Файлы из каталога успешно удалены'; print '<script>alert("'.$var.'");location.reload();</script>' ?>

Кнопка для удаления файлов в index.php

<button id="button" type="button">Удалить файлы</button>

Обработчик кнопки Ajax jQuery.

<script type="text/javascript"> $(document).ready(function(){ $("#button").click(function(){ $.ajax({ method: 'POST', url: 'delete.php', success: function(data) { $('.results').html(data); } }); }); });</script>

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

<?php if (file_exists('./upload')) foreach (glob('./upload/') as $file) { if ($file!='название файла, который не нужно удалять') unlink($file); } $var = 'Файлы из каталога успешно удалены'; print '<script>alert("'.$var.'");location.reload();</script>' ?>

Пример загрузки изображения на сервер + обрезка изображения.

Быстрый хостинг и регистрация доменов. Все имеющиеся тарифные планы хостинга имеют поддержку разных CMS. Серверы компании расположены в следующих странах: Россия, Украина, Германия, Франция, США.

Хотите сделать свой сайт еще лучше? На моём блоге Вы найдете готовые решения для оформления веб-страниц. Скрипты помогут Вам осуществить свои идеи в реальность.

Попробуйте! Это легко.

2004 - 2018 © htmlhook.ru htmlhook.ru Ленина, Зуя, Крым 297630. | SQL: 115 за 0,259 сек. 26.24 МБ Рекламодателям


Источник: https://htmlhook.ru/zagruzit-fajl-na-server.html


Поделись с друзьями



Рекомендуем посмотреть ещё:



Похожие новости


Молодежный рюкзак своими руками выкройки
Сироп для пропитки бисквита в домашних условиях с алкоголем
Фото театральный уголок в детском саду своими руками фото
Схема для споттера своими руками
Домик для куклы своими руками с мебелью
Накрашенные ногти в домашних условиях


Как сделать загрузку html
Как сделать загрузку html


Как сделать форму загрузки файла на сайте
Эффект загрузки страницы создание эффекта при загрузке страницы



ШОКИРУЮЩИЕ НОВОСТИ