Смена имени файла при загрузке на хостинг

Статус
В этой теме нельзя размещать новые ответы.

fredis69

Постоялец
Регистрация
24 Окт 2008
Сообщения
84
Реакции
2
Есть скрипт загрузки баннеров на хостинг:

PHP:
<p>
$g = "/home/hosting/wtname/htdocs/banners/";
$max_image_width	= 468;
$max_image_height	= 60;
$max_image_size		= 100 * 1024;
$valid_types 		=  array("gif","jpg", "png", "jpeg");
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
		$filename = $_FILES['filename']['tmp_name'];
		$ext = substr($_FILES['filename']['name'], 
			1 + strrpos($_FILES['filename']['name'], "."));
			
      if($_FILES["filename"]["size"] > $max_image_size)
      {
	  $error = true;
   $errort .= 'Размер Картинки превышает 100 Кб';
	  }
   elseif (!in_array($ext, $valid_types)) 
   {
		$error = true;
   $errort .= 'Картинка: Недействительный тип файла.<br>';
		} 
		else {			
            if(copy($_FILES["filename"]["tmp_name"],
             "$g".$_FILES["filename"]["name"]))
            {
            } 
            else 
			{ 
			$error = true;
		$errort .= 'Произошла ошибка при загрузке картинки<br>';
			}
      }
}
else 
{ 
$error = true;
		$errort .= 'Вы не загрузили картинку<br>';
		}
  
   $img = "banners/".$_FILES["filename"]["name"];
</p>

Как мне при загрузке банера на хостинг изменить его имя?
Допустем имя было: banner, а мне надо его изменить на сегодняшнюю датту и время допустим: 20090906183954 (date("YmdHis"))

Подскажите пожалуйсто, оч надо.
Заранее спасиб
 
Вот этот кусок замени
PHP:
if(copy($_FILES["filename"]["tmp_name"],  $g.date("YmdHis").'.'.$ext))
Ну и выше у тебя определяется расширения файла $ext
 
Что-нибудь типа этого
PHP:
<p>
$g = "/home/hosting/wtname/htdocs/banners/";
$max_image_width    = 468;
$max_image_height    = 60;
$max_image_size        = 100 * 1024;
$valid_types         =  array("gif","jpg", "png", "jpeg");
$new_file = '';
if (is_uploaded_file($_FILES['filename']['tmp_name'])) 
{
   $filename = $_FILES['filename']['tmp_name'];
   $ext = substr($_FILES['filename']['name'], 
          1 + strrpos($_FILES['filename']['name'], "."));
   if($_FILES["filename"]["size"] > $max_image_size)
   {
      $error = true;
      $errort .= 'Размер Картинки превышает 100 Кб';
   }
   elseif (!in_array($ext, $valid_types)) 
   {
        $error = true;
        $errort .= 'Картинка: Недействительный тип файла.<br>';
   } 
   else 
   {            
      $new_file = $g.time().'.'.ext;
      if(copy($_FILES["filename"]["tmp_name"],$new_file))
      {
      } 
      else 
      { 
         $error = true;
         $errort .= 'Произошла ошибка при загрузке картинки<br>';
      }
   }
}
else 
{ 
   $error = true;
   $errort .= 'Вы не загрузили картинку<br>';
}
if($new_file!='')  
    $img = "banners/".$new_file;
</p>
 
Jools

Спасибо, но у тебя были недочеты небольшие.

Но я подправил и выкладываю здесь мож комунить надо будет

PHP:
# $g - это путь к папке в которую будем грузить баннер
$g = "/home/hosting/wtname/htdocs/banners/";


$max_image_width    = 468; 
$max_image_height    = 60; 
$max_image_size        = 100 * 1024; 
$valid_types         =  array("gif","jpg", "png", "jpeg"); 
$new_file = ''; 
if (is_uploaded_file($_FILES['filename']['tmp_name']))  
{ 
   $filename = $_FILES['filename']['tmp_name']; 
   $ext = substr($_FILES['filename']['name'],  
          1 + strrpos($_FILES['filename']['name'], ".")); 
   if($_FILES["filename"]["size"] > $max_image_size) 
   { 
      $error = true; 
      $errort .= 'Размер Картинки превышает 100 Кб'; 
   } 
   elseif (!in_array($ext, $valid_types))  
   { 
        $error = true; 
        $errort .= 'Картинка: Недействительный тип файла.<br>'; 
   }  
   else  
   {             
      $new_file = $g.time().'.'.ext; 
      if(copy($_FILES["filename"]["tmp_name"],$new_file)) 
      { 
      }  
      else  
      {  
         $error = true; 
         $errort .= 'Произошла ошибка при загрузке картинки<br>'; 
      } 
   } 
} 
else  
{  
   $error = true; 
   $errort .= 'Вы не загрузили картинку<br>'; 
} 
if($new_file!='') 

# $img - это адрес баннера по которому он будет выводиться на страници сайта  
    $img = "banners/".$new_file;
 
почему copy? для этого есть move_uploaded_file
 
  • Заблокирован
  • #7
На некоторых шаредхостингах move_uploaded_file не срабатывает, в то время как с помощью copy вы гарантированно получите файл, ну и по окончании работы скрипта система его все равно из tmp убьет.
 
на днях тоже понадобилось вот
PHP:
        $file1 = $_FILES['filename']['tmp_name'][0];
		$upfile1 = '/tmp/'.time();
		if (is_uploaded_file($file1))  {
			//need rename!
			if (!move_uploaded_file($file1, $upfile1))  {
				$error = 'Problem: could not move File to destination directory';
				//here try to delete file				
				@unlink($file1);
			} else {
									//poneslasy
			}
		}
ты бы еще проверку сделал тип файла и размер
$_FILES["filename"]["type"];
$_FILES["filename"]["size"]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху