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

Тема в разделе "PHP", создана пользователем fredis69, 6 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. fredis69

    fredis69 Постоялец

    Регистр.:
    25 окт 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'], 
                
    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"))

    Подскажите пожалуйсто, оч надо.
    Заранее спасиб
     
  2. omfg

    omfg

    Регистр.:
    4 авг 2009
    Сообщения:
    159
    Симпатии:
    46
    Вот этот кусок замени
    PHP:
    if(copy($_FILES["filename"]["tmp_name"],  $g.date("YmdHis").'.'.$ext)) 
                
    Ну и выше у тебя определяется расширения файла $ext
     
    fredis69 нравится это.
  3. Jools

    Jools Создатель

    Регистр.:
    28 июн 2009
    Сообщения:
    14
    Симпатии:
    3
    Что-нибудь типа этого
    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'], 
              
    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>
     
    fredis69 нравится это.
  4. fredis69

    fredis69 Постоялец

    Регистр.:
    25 окт 2008
    Сообщения:
    84
    Симпатии:
    2
    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'],  
              
    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;
     
  5. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    почему copy? для этого есть move_uploaded_file
     
  6. fredis69

    fredis69 Постоялец

    Регистр.:
    25 окт 2008
    Сообщения:
    84
    Симпатии:
    2
    Как этим пользоваться?
     
  7. Jameson

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    На некоторых шаредхостингах move_uploaded_file не срабатывает, в то время как с помощью copy вы гарантированно получите файл, ну и по окончании работы скрипта система его все равно из tmp убьет.
     
    fredis69 нравится это.
  8. autos

    autos

    Регистр.:
    14 июл 2007
    Сообщения:
    186
    Симпатии:
    48
    на днях тоже понадобилось вот
    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"]
     
    fredis69 нравится это.
Статус темы:
Закрыта.