PHP

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

У 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 форме
 <form action="#" method=POST enctype="multipart/form-data">
<input type="FILE" name="filename"><br>
<input type="submit" name=upload value=Загрузить><br> 
</form>

Ну а теперь сам код,в том же файле
<?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 ("Не подходит"); 
} 
}  
?>
Добавлено: 17 Августа 2013 11:42:38 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...