как добавить в имя загружаемого файла дату и ip

Discussion in 'PHP' started by ufaclub, 10 Jun 2012.

  1. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    отправка

    <div id="files">
    <input name="file[]" type="file" value="" class="1">

    </div>



    прием:

    PHP:

    $uploaddir
    ="/home/justcora/public_html/site.ru/foto/";
    $count_file=is_array($_FILES['file']['name'])?count($_FILES['file']['name']):0;
        if(
    $count_file>0)
        {
            for(
    $i=0;$i<$count_file;$i++)
            {
                if(
    $_FILES['file']['error'][$i]==0)
                {
                    
    $name_file=basename($_FILES['file']['name'][$i]);
                    
    $uploadfile $uploaddir.$name_file;

                    if (
    move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploadfile))
                    {
                        
    $file_upload['file_upload'][]=$_FILES['file']['name'][$i];
                        
                    }
                    else
                    {
                        
    $file_upload['error'][]=$_FILES['file']['name'][$i];
                    }

                }
            }
        }




    сейчас в папку складываються файлы просто "как есть"
    а как сделать чтобы в имя файла вствлялась дата и ip?

    например загружаем файл marina.jpg

    а в папку попадает файл

    12.15_198.161.11.12_marina.jpg
     
  2. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    при формировании имени юзай функцию даты php
     
  3. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    ну я понял, например я из форму дату в переменную $dt загоню, а ip в $ip

    где в коде иммено идет формирования имени? куда подставить эти значения? :)
     
  4. Dmit3Y

    Dmit3Y Member

    Joined:
    19 Jul 2010
    Messages:
    45
    Likes Received:
    8
    Reputations:
    0
    Я думаю так:

    PHP:
    function GetRealIp()
    {
     if (!empty(
    $_SERVER['HTTP_CLIENT_IP'])) 
     {
       
    $ip=$_SERVER['HTTP_CLIENT_IP'];
     }
     elseif (!empty(
    $_SERVER['HTTP_X_FORWARDED_FOR']))
     {
      
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
     }
     else
     {
       
    $ip=$_SERVER['REMOTE_ADDR'];
     }
     return 
    $ip;
    }
    // Функция возвращает ip адрес пользователя. Нашел в гугле.

    $ip=GetRealIp();
    $date date("m.d.y");
    $name_file=basename($date "_"  $ip "_" $_FILES['file']['name'][$i]);
    Возможно есть ошибки. Не могу сейчас проверить. Если что отпишитесь.
     
  5. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    а потом ему move_uploaded_file выдаст ошибку, так как не найдет имя файла.
    да и определять ип этой функцией - не имеет смысла.
    ТС, ты почитай про каждую используемую функцию на php.su и разберись :)
    полезнее будет
     
  6. Darth Padla

    Darth Padla Member

    Joined:
    21 Jun 2010
    Messages:
    141
    Likes Received:
    25
    Reputations:
    8
    формат даты смотреть здесь
     
  7. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0