Загруска файлов

Автор: Topol Вторник, Апрель 17th, 2012 Нет комментариев

Рубрика: Программирование

У php достаточно большой набор возможностей, для работы с загрузкой файлов:
$_FILES["filename"]["tmp_name"]-имя сохраненного файла
$_FILES["filename"]["name"]-имя запрашиваемого файла
$_FILES["filename"]["size"] –размер файла в байтах
$_FILES["filename"]["type"]-содержит в себе разрешение файла и категорию к которой относится. Но не думайте что, последнее выведет вам прямо в руки его разрешение, оно выводит сначала категорию, а потом разрешение, например
application/x-rar-compressed-вот так обозначаются файлы с разрешением php.
Конечно можно было применить strops,с обрезанием до точки, а если файл будет содержать точки, то получится- БРЕД.
Как видите, скрипт написан на простейшем языке, дабы облегчить его понимание, данный скрипт можно было выполнить через оператор “or”,получилось значительно меньше тегов, но наверно менее понятно.Что мы хотим о скрипта?
1)Чтобы можно было закачивать только архивы
2)Чтобы не больше 1 мегабайта
3)Перед закачкой,проверить не существует ли такое имя
4)Если есть то скрипт сам даст имя
Ну вот те цели которые мы перед собой поставили.Реализацию начнем с обычной html форме

Code
 <form action=»#» method=POST enctype=»multipart/form-data»> <input type=»FILE» name=»filename»><br> <input type=»submit» name=upload value=Загрузить><br> </form>

Ну а теперь сам код,в том же файле

Code
 <?php if (isset($_POST['upload'])) { if(empty($filename)) { exit («Имя введите»); } //Создаем массив с доступными разрешениями $array=array(«application/zip»,»application/x-rar-compressed»,»image/jpeg»); //ищем разрешение файла в массиве if (in_array($_FILES['filename']['type'],$array))/ {//если найдено то выполняем проверку на размер файла  if ($_FILES['filename']['size'] > 1024*1*1024) {
//если размер не подходит exit («Максимальный размер файла 1 мегобайт «); } //для удобства приравниваем имя файла $fn=$_FILES['filename']['name']; //проверяем существует ли файл  if(file_exists(«catalog/$fn»)==TRUE)  { //если файл уже есть,о определяем дату, $date=time(); записываем файл в виде «дата@имя файла.разрешение copy($_FILES["filename"]["tmp_name"],»catalog/$date@$fn»); echo»Файл с таким именем уже присутствует в каталоге.Поэтому ему было присвоено имя $date@$fn»; } else {//если файла нету то просто копируем copy($_FILES["filename"]["tmp_name"],»catalog/$fn»); //копируем файл }} else {//если имя разрешение файла не найдено,тоесть не подходит exit («Не подходит»); } }  ?>
Источник: woweb.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты