PHP

Опять грузим

Пусть задача стоит так: посетители грузят нам на сайт фотографии, мы их проверяем на формат (здесь - jpg) и размер (тут - не более 200 Кб) и затем складываем в папку (ну, что-то вроде фотогалереи). При этом мы их переименуем и пронумеруем. Пусть папка для фотографий называется 'img' (или по любому другому). Код скрипта:

<?php
$dir=dir("img");
$i = 0;
while($file=$dir->read()){
if(stristr($file,".JPG")){
$pic[$i]=$file;
$i++;}
}
$dir->close();
if(empty($_FILES['file']['tmp_name'])){
$upl="<form method=post enctype=multipart/form-data>
<input type=file name=file ><BR>
<input type=submit value=Загрузить>
</form>"; echo $upl;}
elseif($_FILES["file"]["size"] > 1024*200 ||!stristr($_FILES['file']['name'],".jpg"))die ("Файл имеет недопустимый размер или формат");
elseif(!is_uploaded_file($_FILES['file']['tmp_name'])||!copy($_FILES['file']['tmp_name'],"img/".chr(47).$_FILES['file']['name']))
{$inf="Не удалось загрузить файл";}
else {rename("img/".$_FILES['file']['name'],"img/".($i+1).".JPG");$inf="Файл ".$_FILES['file']['name']." загружён на сервер"; }
echo $inf;
?>

Отличия от предыдущего примера: первое - считаем файлы с расширением .jpg в папке 'img', полученное число - в переменной $i:

$dir=dir("img");
$i = 0;
while($file=$dir->read()){
if(stristr($file,".JPG")){
$pic[$i]=$file;
$i++;}
}
$dir->close();

Второе - проверяем не только размер, но и расширение файла, если не соответствует - заканчиваем работу скрипта с сообщением:

elseif($_FILES["file"]["size"] > 1024*200 ||!stristr($_FILES['file']['name'],".jpg"))die ("Файл имеет недопустимый размер или формат");

И третье - если все прошло успешно - переименовываем файл, присваивая ему очередной номер $i+1 и стандартизируя расширение как .JPG:

rename("img/".$_FILES['file']['name'],"img/".($i+1).".JPG");

Скачиваем, пробуем в работе, не забывая просматривать содержимое папки 'img'. Идем дальше.

Рейтинг@Mail.ru