1

Тема: Как сделать на три фото ?

Здравствуйте, Кто подскажет - делаю доску объявлений, как бы все нориально, но прикрепляет только одно из трех фото, а две не работают, вчем причина может быть ?

2

Re: Как сделать на три фото ?

Решение смотрите здесь:
http://lv.php.net/manual/ru/features.fi … ltiple.php

3

Re: Как сделать на три фото ?

У меня по другому - $foto=

4

Re: Как сделать на три фото ?

$foto=""; $fotoksize=""; $size[0]=""; $size[1]="";
/// Добавляем ФОТО к объявлению!
if ($fotoadd==TRUE) { if (isset($_COOKIE['wrbcookies']) or $fotoaddany==TRUE) {

$allfotoname="";

$filename=$_FILES["file1"]['name']; // определяем имя ЗАГРУЖАЕМОГО файла

if (strlen($filename)>2) {

$fotoname=$_FILES["file1"]['name']; // определяем имя файла
$foto=$fotoname;

$fotosize=$_FILES["file1"]['size']; // Запоминаем размер файла

// проверяем расширение файла
$valid_types = array("gif","jpg","png","jpeg");  // допустимые расширения
$ext = strtolower(substr($fotoname, 1 + strrpos($fotoname, ".")));
if (!in_array($ext, $valid_types)) {echo '<B>ФАЙЛ НЕ загружен.</B> Возможные причины:<BR>
- разрешена загрузка только файлов с такими расширениями: gif, jpg, jpeg, png<BR>
- Вы пытаетесь загрузить не графический файл;<BR>
- неверно введён адрес или выбран файл;</B><BR>'; exit;}


//      ЗАЩИТЫ от ВЗЛОМА (ФОТО)

// 1. считаем кол-во точек в выражении - если большей одной - СВОБОДЕН!
$findtchka=substr_count($fotoname, "."); if ($findtchka>1) {echo "ТОЧКА встречается в имени файла $findtchka раз(а). Это ЗАПРЕЩЕНО! <BR>\r\n";}

// 2. если в имени есть .php, .html, .htm - свободен!
$bago="Извините. В имени ФАйла <B>запрещено</B> использовать .php, .html, .htm";
if (preg_match("/\.php/i",$fotoname))  {echo "Вхождение <B>\".php\"</B> найдено. $bago"; exit;}
if (preg_match("/\.html/i",$fotoname)) {echo "Вхождение <B>\".html\"</B> найдено. $bago"; exit;}
if (preg_match("/\.htm/i",$fotoname))  {echo "Вхождение <B>\".htm\"</B> найдено. $bago"; exit;}

// 3.

// 4. Проверяем, может быть файл с таким именем уже есть на сервере
if (file_exists("$fotodir/$foto")) {exit("Файл с таким именем уже существует на сервере! Измините имя на другое!");}
// Конец защит по имени файла

$fotoksize=round($fotosize/10.24)/100; // размер ЗАГРУЖАЕМОГО ФОТО в Кб.
$fotomax=round($max_file_size/10.24)/100; // максимальный размер фото в Кб.
if ($fotoksize>$fotomax) {exit("Вы превысили допустимый размер фото! <BR><B>Максимально допустимый</B> размер фото: <B>$fotomax </B>Кб.<BR> <B>Вы пытаетесь</B> загрузить изображение: <B>$fotoksize</B> Кб!");}

if   ($fotosize>"0" and $fotosize<$max_file_size) {
     copy($_FILES["file1"]['tmp_name'], "$fotodir/$fotoname");
     print "<br><br>Фото УСПЕШНО загружено: $fotoname (Размер: $fotosize байт)";}
else {exit("<B>Файл НЕ ЗАГРУЖЕН - ошибка СЕРВЕРА! Обратитесь к администратору!<B>");}

// Проверяем размер фото. Если "габариты" меньше 100 х 100 - то ничего с ним не делаем
$size = getimagesize("$fotodir/$foto");

// блок делает мальное изображение исходной фотки - в качестве превьюшки
$smallfoto="$foto";
if ($size[0]>100 or $size[1]>100) { $smallfoto="sm-$foto";
if (img_resize("$fotodir/$foto", "$fotodir/$smallfoto", 150, 120))  echo 'Изображение масштабировано успешно'; else  echo 'Масштабирование невозможно - ошибка на хостинге!';
}
} else $smallfoto="";
$allfotoname.="$filename|";

/// Конец блока добавления ФОТО

5

Re: Как сделать на три фото ?

Смотрите пример. Там массив глобальный $_FILES надо разбирать, а перед этим правильно прописать HTML для загрузки нескольких файлов.

6

Re: Как сделать на три фото ?

В примере что Вы мне присылали ? Там еще не разобрался. Свой код переделываю - Вот задача, знать бы - разрешима она ? Я уже сколько вариантов перебрал, прикрепляет либо первую, либо третью, либо вообще пишет ошибку и все. Вот код еще раз переделанный, что не так подскажите ? Доска без БД, на файлах, я думаю может переделать ?                                                                                                                                                                                                                                                                                                                                                                                   $foto=""; $fotoksize=""; $size[0]=""; $size[1]="";
/// Добавляем ФОТО к объявлению!
if ($fotoadd==TRUE) { if (isset($_COOKIE['wrbcookies']) or $fotoaddany==TRUE) {

$allfotoname="";

$filename=$_FILES["file1"]['name']; // определяем имя ЗАГРУЖАЕМОГО файла

$filename=$_FILES["file2"]['name']; // определяем имя ЗАГРУЖАЕМОГО файла

$filename=$_FILES["file3"]['name']; // определяем имя ЗАГРУЖАЕМОГО файла

$fotoname=$_FILES["file1"]['name']; // определяем имя файла
$foto=$fotoname;

$fotoname=$_FILES["file2"]['name']; // определяем имя файла
$foto=$fotoname;

$fotoname=$_FILES["file3"]['name']; // определяем имя файла
$foto=$fotoname;

$fotosize=$_FILES["file1"]['size']; // Запоминаем размер файла

$fotosize=$_FILES["file2"]['size']; // Запоминаем размер файла

$fotosize=$_FILES["file3"]['size']; // Запоминаем размер файла

// проверяем расширение файла
$valid_types = array("gif","jpg","png","jpeg");  // допустимые расширения
$ext = strtolower(substr($fotoname, 1 + strrpos($fotoname, ".")));
if (!in_array($ext, $valid_types)) {echo '<B>ФАЙЛ НЕ загружен.</B> Возможные причины:<BR>
- разрешена загрузка только файлов с такими расширениями: gif, jpg, jpeg, png<BR>
- Вы пытаетесь загрузить не графический файл;<BR>
- неверно введён адрес или выбран файл;</B><BR>'; exit;}


//      ЗАЩИТЫ от ВЗЛОМА (ФОТО)

// 1. считаем кол-во точек в выражении - если большей одной - СВОБОДЕН!
$findtchka=substr_count($fotoname, "."); if ($findtchka>1) {echo "ТОЧКА встречается в имени файла $findtchka раз(а). Это ЗАПРЕЩЕНО! <BR>\r\n";}

// 2. если в имени есть .php, .html, .htm - свободен!
$bago="Извините. В имени ФАйла <B>запрещено</B> использовать .php, .html, .htm";
if (preg_match("/\.php/i",$fotoname))  {echo "Вхождение <B>\".php\"</B> найдено. $bago"; exit;}
if (preg_match("/\.html/i",$fotoname)) {echo "Вхождение <B>\".html\"</B> найдено. $bago"; exit;}
if (preg_match("/\.htm/i",$fotoname))  {echo "Вхождение <B>\".htm\"</B> найдено. $bago"; exit;}

// 3.

// 4. Проверяем, может быть файл с таким именем уже есть на сервере
if (file_exists("$fotodir/$foto")) {exit("Файл с таким именем уже существует на сервере! Измините имя на другое!");}
// Конец защит по имени файла

$fotoksize=round($fotosize/10.24)/100; // размер ЗАГРУЖАЕМОГО ФОТО в Кб.
$fotomax=round($max_file_size/10.24)/100; // максимальный размер фото в Кб.
if ($fotoksize>$fotomax) {exit("Вы превысили допустимый размер фото! <BR><B>Максимально допустимый</B> размер фото: <B>$fotomax </B>Кб.<BR> <B>Вы пытаетесь</B> загрузить изображение: <B>$fotoksize</B> Кб!");}

if   ($fotosize>"0" and $fotosize<$max_file_size) {
     copy($_FILES["file1"]['tmp_name'], "$fotodir/$fotoname");
     print "<br><br>Фото УСПЕШНО загружено: $fotoname (Размер: $fotosize байт)";}
else {exit("<B>Файл НЕ ЗАГРУЖЕН - ошибка СЕРВЕРА! Обратитесь к администратору!<B>");}

// Проверяем размер фото. Если "габариты" меньше 100 х 100 - то ничего с ним не делаем
$size = getimagesize("$fotodir/$foto");

// блок делает мальное изображение исходной фотки - в качестве превьюшки
$smallfoto="$foto";
if ($size[0]>100 or $size[1]>100) { $smallfoto="sm-$foto";
if (img_resize("$fotodir/$foto", "$fotodir/$smallfoto", 150, 120))  echo 'Изображение масштабировано успешно'; else  echo 'Масштабирование невозможно - ошибка на хостинге!';
}
} else $smallfoto="";
$allfotoname.="$filename|";

/// Конец блока добавления ФОТО
                                                                                                                                                                                                                                                        if ($fotoadd==TRUE) { if (isset($_COOKIE['wrbcookies']) or $fotoaddany==TRUE) {
$maxfile=round($max_file_size/10.24)/100;
print"<TR class=row1><TD>Прикрепить фото:<BR>(допустимые типы: gif, jpg, png,<BR> размер менее $maxfile Кб.)</TD><TD>
<FONT color=#ff0000>*</FONT><input type=file size=50 class=maxiinput name=file1><br>
<FONT color=#ff0000>* Фото будет масштабировано до разрешения<br> 145 х 120 для отображения в рубрикаторе</FONT><br>
</TD></TR>"; } }

if ($fotoadd==TRUE) { if (isset($_COOKIE['wrbcookies']) or $fotoaddany==TRUE) {
$maxfile=round($max_file_size/10.24)/100;
print"<TR class=row1><TD>Прикрепить фото:<BR>(допустимые типы: gif, jpg, png,<BR> размер менее $maxfile Кб.)</TD><TD>
<FONT color=#ff0000>*</FONT><input type=file size=50 class=maxiinput name=file2><br>
<FONT color=#ff0000>* Фото будет масштабировано до разрешения<br> 145 х 120 для отображения в рубрикаторе</FONT><br>
</TD></TR>"; } }

if ($fotoadd==TRUE) { if (isset($_COOKIE['wrbcookies']) or $fotoaddany==TRUE) {
$maxfile=round($max_file_size/10.24)/100;
print"<TR class=row1><TD>Прикрепить фото:<BR>(допустимые типы: gif, jpg, png,<BR> размер менее $maxfile Кб.)</TD><TD>
<FONT color=#ff0000>*</FONT><input type=file size=50 class=maxiinput name=file3><br>
<FONT color=#ff0000>* Фото будет масштабировано до разрешения<br> 145 х 120 для отображения в рубрикаторе</FONT><br>
</TD></TR>"; } }

echo'<TR class=row1><TD colspan=2 align=middle><INPUT class=longok type=submit value=Сохранить></TD></TR></FORM></TBODY></TABLE>';
}
}

7

Re: Как сделать на три фото ?

Смотрите пример, там все ясно описано.

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Файлы:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Отправить" />
</form>

Например, предположим, что были загружены файлы /home/test/review.html и /home/test/xwp.out. В таком случае переменная $_FILES['userfile']['name'][0] будет установлена значением review.html, а переменная $_FILES['userfile']['name'][1] - значением xwp.out. Аналогично, переменная $_FILES['userfile']['size'][0] будет содержать размер файла review.html и так далее.