Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Блок "Фотогалерея"
 
 автор: Deathless   (24.05.2007 в 10:02)   письмо автору
 
 

Разбираю по косточкам крипт ) Воть не могу понять когда копируется рисунок ему дается имя каким образом оно генерируется ?
 if (copy($_FILES['image1']['tmp_name'], "../".$image1))

tmp_name где создается ?

   
 
 автор: provodnik   (24.05.2007 в 10:45)   письмо автору
 
   для: Deathless   (24.05.2007 в 10:02)
 

tmp_name одно из значений массива $_FILES. именно с временным названием оно хранится на сервере, пока Вы не переместите его в постоянную папку и/или переименуете его.
Вот цитата статьи:

<?
Характеристики загруженного файла доступны через двумерный суперглобальный
-массив $_FILESПри этом переменная со значениями этого массива может иметь следующий вид
$_FILES["filename"]["name"] (содержит исходное имя файла на клиентской машине); 
$_FILES["filename"]["size"] (содержит размер загруженного файла в бай-тах); 
$_FILES["filename"]["type"] (содержит MIME-тип файла); 
$_FILES["filename"]["tmp_file"] (содержит имя временного файлав кото-рый сохраняется загруженный файл).
?>

Цитата отсюда: http://www.softtime.ru/info/articlephp.php?id_article=13

   
 
 автор: cheops   (24.05.2007 в 10:48)   письмо автору
 
   для: Deathless   (24.05.2007 в 10:02)
 

Когда файл загружается на сервер - он помещается во временную директорию. Путь к нему определяется при помощи $_FILES['image1']['tmp_name']. Когда вы копируете файл при помощи функции copy() - она перебрасывает файл из $_FILES['image1']['tmp_name'] в "../".$image1. Переменная $image1 как раз и определяет новое имя файла.

   
 
 автор: Deathless   (24.05.2007 в 11:23)   письмо автору
 
   для: cheops   (24.05.2007 в 10:48)
 

Дело в том что я пытаюсь в одном скрипте скопировать таким образом 5 разных файлов, и выходит что они все 5 выходят с одинаковым именем. и файл у меня выходит фактически только один.

   
 
 автор: Trianon   (24.05.2007 в 11:59)   письмо автору
 
   для: Deathless   (24.05.2007 в 11:23)
 

Так Вы не tmp_name смотрите - они-то разные. Смотрите $image1 - там у Вас, видимо, значение не меняется.

   
 
 автор: Deathless   (24.05.2007 в 12:36)   письмо автору
 
   для: Trianon   (24.05.2007 в 11:59)
 


<tr><td><p class=zag2>Изображение. 1*</td><td><input class=input type=file name=image1></td></tr>
<tr><td><p class=zag2>Изображение. 2</td><td><input class=input type=file name=image2></td></tr>
<tr><td><p class=zag2>Изображение. 3</td><td><input class=input type=file name=image3></td></tr>
<tr><td><p class=zag2>Изображение. 4</td><td><input class=input type=file name=image4></td></tr>
<tr><td><p class=zag2>Изображение. 5</td><td><input class=input type=file name=image5></td></tr>


// Если во временном каталоге имеется соответствующий полю image
  // файл, копируем его из временного каталога в каталог /files
  if (!empty($_FILES['image1']['tmp_name']))
  {
    // Определяем расширение файла
    $ext = strrchr($_FILES['image1']['name'], "."); 
    // Формируем путь к файлу    
    $image1 = "files/".date("YmdHis",time())."$ext";
    $smallimage1 = "files/".date("YmdHis",time())."_s$ext";  
    // Перемещаем файл из временной директории сервера в
    // директорию /files Web-приложения
    if (copy($_FILES['image1']['tmp_name'], "../".$image1))
    {
      // Уничтожаем файл во временной директории
      unlink($_FILES['image1']['tmp_name']);
      // Изменяем права доступа к файлу
      chmod("../".$image1, 0644);
    }
  } //else links($_POST['id_catalog'], "Фотография не передана на сервер");
  // Вызываем функцию resizeimg(), создающую уменьшенную копию фотографии
  // $image и помещающую её в файл $smallimage
  if(!resizeimg($image1, $smallimage1, 160, 100))
    links($_POST['id_catalog'], "Ошибка при создании уменьшенной копии изображения с помощью библиотеки GDLib");




// Если во временном каталоге имеется соответствующий полю image
  // файл, копируем его из временного каталога в каталог /files
  if (!empty($_FILES['image2']['tmp_name']))
  {
    // Определяем расширение файла
    $ext = strrchr($_FILES['image2']['name'], "."); 
    // Формируем путь к файлу    
    $image2 = "files/".date("YmdHis",time())."$ext";
    $smallimage2 = "files/".date("YmdHis",time())."_s$ext";  
    // Перемещаем файл из временной директории сервера в
    // директорию /files Web-приложения
    if (copy($_FILES['image2']['tmp_name'], "../".$image2))
    {
      // Уничтожаем файл во временной директории
      unlink($_FILES['image2']['tmp_name']);
      // Изменяем права доступа к файлу
      chmod("../".$image2, 0644);
    }
  } //else links($_POST['id_catalog'], "Фотография не передана на сервер");
  // Вызываем функцию resizeimg(), создающую уменьшенную копию фотографии
  // $image и помещающую её в файл $smallimage
  if(!resizeimg($image2, $smallimage2, 160, 100))
    links($_POST['id_catalog'], "Ошибка при создании уменьшенной копии изображения с помощью библиотеки GDLib");





// Если во временном каталоге имеется соответствующий полю image
  // файл, копируем его из временного каталога в каталог /files
  if (!empty($_FILES['image3']['tmp_name']))
  {
    // Определяем расширение файла
    $ext = strrchr($_FILES['image3']['name'], "."); 
    // Формируем путь к файлу    
    $image3 = "files/".date("YmdHis",time())."$ext";
    $smallimage3 = "files/".date("YmdHis",time())."_s$ext";  
    // Перемещаем файл из временной директории сервера в
    // директорию /files Web-приложения
    if (copy($_FILES['image3']['tmp_name'], "../".$image3))
    {
      // Уничтожаем файл во временной директории
      unlink($_FILES['image3']['tmp_name']);
      // Изменяем права доступа к файлу
      chmod("../".$image3, 0644);
    }
  } //else links($_POST['id_catalog'], "Фотография не передана на сервер");
  // Вызываем функцию resizeimg(), создающую уменьшенную копию фотографии
  // $image и помещающую её в файл $smallimage
  if(!resizeimg($image3, $smallimage3, 160, 100))
    links($_POST['id_catalog'], "Ошибка при создании уменьшенной копии изображения с помощью библиотеки GDLib");




// Если во временном каталоге имеется соответствующий полю image
  // файл, копируем его из временного каталога в каталог /files
  if (!empty($_FILES['image4']['tmp_name']))
  {
    // Определяем расширение файла
    $ext = strrchr($_FILES['image4']['name'], "."); 
    // Формируем путь к файлу    
    $image4 = "files/".date("YmdHis",time())."$ext";
    $smallimage4 = "files/".date("YmdHis",time())."_s$ext";  
    // Перемещаем файл из временной директории сервера в
    // директорию /files Web-приложения
    if (copy($_FILES['image4']['tmp_name'], "../".$image4))
    {
      // Уничтожаем файл во временной директории
      unlink($_FILES['image4']['tmp_name']);
      // Изменяем права доступа к файлу
      chmod("../".$image4, 0644);
    }
  } //else links($_POST['id_catalog'], "Фотография не передана на сервер");
  // Вызываем функцию resizeimg(), создающую уменьшенную копию фотографии
  // $image и помещающую её в файл $smallimage
  if(!resizeimg($image4, $smallimage4, 160, 100))
    links($_POST['id_catalog'], "Ошибка при создании уменьшенной копии изображения с помощью библиотеки GDLib");




    // Если во временном каталоге имеется соответствующий полю image
  // файл, копируем его из временного каталога в каталог /files
  if (!empty($_FILES['image5']['tmp_name']))
  {
    // Определяем расширение файла
    $ext = strrchr($_FILES['image5']['name'], "."); 
    // Формируем путь к файлу    
    $image5 = "files/".date("YmdHis",time())."$ext";
    $smallimage5 = "files/".date("YmdHis",time())."_s$ext";  
    // Перемещаем файл из временной директории сервера в
    // директорию /files Web-приложения
    if (copy($_FILES['image5']['tmp_name'], "../".$image5))
    {
      // Уничтожаем файл во временной директории
      unlink($_FILES['image5']['tmp_name']);
      // Изменяем права доступа к файлу
      chmod("../".$image5, 0644);
    }
  } //else links($_POST['id_catalog'], "Фотография не передана на сервер");
  // Вызываем функцию resizeimg(), создающую уменьшенную копию фотографии
  // $image и помещающую её в файл $smallimage
  if(!resizeimg($image5, $smallimage5, 160, 100))
    links($_POST['id_catalog'], "Ошибка при создании уменьшенной копии изображения с помощью библиотеки GDLib");

   
 
 автор: Trianon   (24.05.2007 в 12:48)   письмо автору
 
   для: Deathless   (24.05.2007 в 12:36)
 

Переменные $image1....$image5 имеют одно и то же значение.
время-то не меняется.

   
 
 автор: Deathless   (24.05.2007 в 12:52)   письмо автору
 
   для: Trianon   (24.05.2007 в 12:48)
 

Не совсем понял... Я файлы в форме выбираю.

   
 
 автор: Deathless   (24.05.2007 в 13:02)   письмо автору
 
   для: Trianon   (24.05.2007 в 12:48)
 

перед началом работы скрипта

echo "$image1 <BR>";
echo "$image2 <BR>";
echo "$image3 <BR>";
echo "$image4 <BR>";
echo "$image5 <BR>";


C:\WINNT\TEMP\php7E7.tmp
C:\WINNT\TEMP\php7E8.tmp
C:\WINNT\TEMP\php7E9.tmp
C:\WINNT\TEMP\php7EA.tmp
C:\WINNT\TEMP\php7EB.tmp

   
 
 автор: Trianon   (24.05.2007 в 13:07)   письмо автору
 
   для: Deathless   (24.05.2007 в 13:02)
 


$image1 = "files/".date("YmdHis",time())."$ext";
....
$image5 = "files/".date("YmdHis",time())."$ext";

Вы полагаете, в переменных будет что-то разное?

   
 
 автор: Deathless   (24.05.2007 в 13:11)   письмо автору
 
   для: Trianon   (24.05.2007 в 13:07)
 

Понял ) А можно както задержку сделать ? На секунду ?

   
 
 автор: Trianon   (24.05.2007 в 13:12)   письмо автору
 
   для: Deathless   (24.05.2007 в 13:11)
 

а зачем? Добавьте лучше цифирки.
$image1 = "files/".date("YmdHis1",time())."$ext";
....
$image5 = "files/".date("YmdHis5",time())."$ext";

   
 
 автор: Deathless   (24.05.2007 в 13:15)   письмо автору
 
   для: Trianon   (24.05.2007 в 13:12)
 

Да есть вышло огромное спасибо за помощь добавил цифры, заработало.

   
 
 автор: Trianon   (24.05.2007 в 13:08)   письмо автору
 
   для: Deathless   (24.05.2007 в 13:02)
 

перед началом работы скрипта у Вас в переменных валяется всякий мусор, который в них режим "register globals" понаоставлял. Неудивительно.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования