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

Форум PHP

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

 

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

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

тема: Изменение названия файла при закачке на сервер
 
 автор: Волчонок   (23.07.2007 в 21:37)   письмо автору
 
 

Здраствуйте внизу предоставлен код скрипта который закачивает файл на сервер и выводит данные о нем.И так вот в чем проблема, те кто пользуються этим скриптом иногда заливают файлы с названиями нелатинскими названиями или с названиями котиорые цже присутсвуют на сервере ... я долго бился над тем чтоб сделать так чтобы названия файла отличалось от той которую заливают, но не получилось помагите.. С функией rand я в принципе разобрался а вот как ее туда затюмашить ненаю заранее балгодарю. только просто подправте и выставте скрипт если вас не затруднит!

 


<head>
<script language="javascript">
<!--
    function f2(x)
     {
      x.focus();
      x.select();
     };
//-->

  </script>
     <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<?php
     
$UPLOAD_PATH 
"/var/www/vhosts/mydomain.com/subdomains/brave/httpdocs/img";  // Директория куда фалы зальються
 

$UPLOAD_NUM  1;                    // the number of upload fields

// display uploaded file list or errors during uploading
// and upload files
function displayUploadedList ()
{
        global     
$UPLOAD_PATH,
                   
$UPLOAD_NUM,
                   
$HTTP_POST_FILES;

        
$buff '';
        
$error 0;
        for (
$i 0$i $UPLOAD_NUM$i++)
        {
                
$name $HTTP_POST_FILES["File$i"]['name'];        // this is the real name of your file
                
$tmp  $HTTP_POST_FILES["File$i"]['tmp_name'];    // this is the temporary name of your file in temporary
                                                                                                                   // directory on the server

                
if (!is_uploaded_file ($tmp))                      // is this temporary file really uploaded?
                        
continue;

                
$buff .= "  <b>".$name." </b> ";
                 
$buffs .= "http://mydomain.com/upload/".$name."";
                if (
move_uploaded_file($tmp$UPLOAD_PATH."/".$name)) // move temporary file to your upload directory
                        
$error 1;
        }

        if (
strlen ($buff) == 0)
        {
                
?>
                <span class=Warning>Сестра выбери файл чтоб закачать </span>
                <?

                
return false;
        }
        else if (
$error)
        {
                
?>
                 <center> <span class=Message>Сестра Файл     <?=$buff ?>      был  залит </span>
                  <table class="global">

        <tr>
          <td>
            <div class="text" style="color:blue">1. Прямая ссылка </div>
            <input name="input_link_1" type="text" id="input_link_1" readonly="readonly" onclick="f2(this);" style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid;
              width: 400px; border-bottom: black 1px solid" value="<?=$buffs ?>" />
          </td>
        </tr>
        <tr>
          <td>
            <div class="text" style="color:green">2. Картинка в тексте;</div>
            <input name="input_link_2" type="text" id="input_link_2" readonly="readonly" onclick="f2(this);" style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid;
              width: 400px; border-bottom: black 1px solid" value="[IMG]<?=$buffs ?>[/IMG]" />
          </td>
        </tr>
        <tr>
          <td>
            <div class="text">8.BBCode, строчные буквы: картинка в тексте</div>
            <input name="input_link_8" type="text" id="input_link_8" readonly="readonly" onclick="f2(this);" style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid;
              width: 400px; border-bottom: black 1px solid" value="[img]<?=$buffs ?>[/img]" />
          </td>
        </tr>
         <tr>
          <td><span class=Message> <center>Список файлов в каталоге<font color=red>  ) </font> </span>

          </td>
             </tr>
      </table>
                <?

                
return false;
        }



        return 
true;
}

// display upload form
// this is not interesting function ;-(
function displayUploadForm () // display upload form,
{
        global 
$UPLOAD_NUM;

        
$tablePre "
                                <table border=0 cellspacing=0 cellpadding=0>
                      <tr>
                <td bgcolor=#C0C0C0 align=left valign=top>
                <table border=0 cellspacing=1 cellpadding=3>
                <tr>
                 <td class=TableHeader align=left valign=middle colspan=8 bgcolor=#C0C0C0>Форма закачки </td>
                      </tr>
                      <tr bgcolor=#FFFFFF>
                        <td class=TableHeader align=left valign=middle colspan=8 height=1></td>
                      </tr>
                      "
;

        
$displayed '';
        for (
$i 0$i $UPLOAD_NUM$i++)
        {
                
$displayed .= "<td  class=TableElement bgcolor=#FFFFFF><input type=file name=File$i length=25></td></tr>";
    }

        
$tableSuf "

                    </table>
                </td>
              </tr>
            </table>
              <p><input type=submit name=Upload value=\"Закачать!\" style=\"font-size: 10pt;\"></p>
              "
;





        print 
$tablePre.$displayed.$tableSuf;   $fileNameShort;
}
?>

<html>
<head>
<title>Закачка фотографий</title>
<link rel=stylesheet type=text/css href=./styles.css>
</head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height=100% border="0" cellspacing="0" cellpadding="0">

  <tr>
    <td align="left" bgcolor="#C0C0C0">
      <table width="100%" height=100% border="0" cellspacing="1" cellpadding="5">
        <tr>
          <td bgcolor="#C0C0C0" width="25" height=20>&nbsp;</td>
          <td bgcolor="#FFFFFF" colspan=2>
          <?
                          
print "<font class=Text algin=center>Закачка фотографий на альбом - <b>$header!</b></font>";
          
?>
            </td>
        </tr>

        <tr> <form method=POST enctype="multipart/form-data" action="./index.php" >
          <td align="left" valign="top" bgcolor="#FFFFFF" width="25">&nbsp; </td>
            <td align="left" valign="top" bgcolor="#FFFFFF" height=100%>
                        <?
                                displayUploadForm 
();
                        
?>
            </td>
            <td align="left" valign="top" bgcolor="#FFFFFF" width="50%">
            <?

            
if (isset ($Upload)) // if user has clicked on Upload button we must try to upload something
                    
displayUploadedList ();
            
?>
            </td>
          </form>

        </tr>
        <tr>
          <td bgcolor="#C0C0C0" colspan="2" height=20><span class=Text><b> Сделал Я ВЕК</b></span></td>
        </tr>

      </table>
  </tr>

</table>
</body>
</html>

   
 
 автор: Trianon   (23.07.2007 в 21:43)   письмо автору
 
   для: Волчонок   (23.07.2007 в 21:37)
 

Вам не нужен rand()
Вы же нумеруете файлы?
Вот и сохраняйте содержимое файла под именем, созданным из его номера.

   
 
 автор: Волчонок   (24.07.2007 в 02:11)   письмо автору
 
   для: Trianon   (23.07.2007 в 21:43)
 

но как это сделать понимаете я сам не писал этот скрипт я не знаю как это сделать и лучше рандом

   
 
 автор: Волчонок   (25.07.2007 в 02:48)   письмо автору
 
   для: Волчонок   (24.07.2007 в 02:11)
 

Помогите пожалуйста прошу

   
 
 автор: provodnik   (25.07.2007 в 10:30)   письмо автору
 
   для: Волчонок   (25.07.2007 в 02:48)
 

.

   
 
 автор: Волчонок   (25.07.2007 в 20:02)   письмо автору
 
   для: provodnik   (25.07.2007 в 10:30)
 

Вы что то написали?

   
 
 автор: Trianon   (25.07.2007 в 20:19)   письмо автору
 
   для: Волчонок   (25.07.2007 в 20:02)
 

Я бы посоветовал определиться с тем, какие данные Вы хотите складывать.

Только имя файла, и само содержимое файла, вообще никак не привязываясь к тому, кто и когда и с какой целью его загрузил?

И показывать список всех загруженных файлов внавал?


И еще вопрос. Есть ли на сервере БД?

   
 
 автор: Волчонок   (26.07.2007 в 01:15)   письмо автору
 
   для: Trianon   (25.07.2007 в 20:19)
 

1 скрипт работает просто мне нужно чтоб туда заливалаись фотки уже с другим названием например заливаем 1.jpg а в сервере чтобы было 6545945615.jpg

2 скрипт который показывает что уже в папке лежит есть просто я код удалил чтобы менше места было (кстати его тоже мне помагли дописать тут за что огромное спасибо пацанам!)

3 Бд есть но весь скрипт я переписать не смогу это тяжело ((

   
 
 автор: Волчонок   (27.07.2007 в 20:02)   письмо автору
 
   для: Волчонок   (26.07.2007 в 01:15)
 

Людииииииии помогите!!!!

   
 
 автор: Trianon   (28.07.2007 в 00:39)   письмо автору
 
   для: Волчонок   (27.07.2007 в 20:02)
 

Вы знаете, кто такой зануда?
<?php
  $dir 
'files';   // server dir
  
$hdir 'files';  // site dir

  
if(isset($_GET['upload'])) // form print
  
?>
  <form action=? method=post enctype="multipart/form-data">
  <input type=file name=loadedfile />
  <input type=submit name=Upload! />
  </form> <?
  
exit;
  }

  if(isset(
$_FILES['loadedfile'])) // upload process
  
{
     if(!empty(
$_FILES['loadedfile']['error']))
     {
         
$err $_FILES['loadedfile']['error'];
         
$msg = array( "Ok","File too large (php.ini)" "File too large (form limit)",
           
"The uploaded file was only partially uploaded.","No file was uploaded.",
           
"Missing a temporary folder. ","Failed to write file to disk.",
            
"File upload stopped by extension. ");
         echo
"<a href=?upload>{$msg[$errerr]}</a>";
         exit();
     }
     if(isset(
$_FILES['loadedfile']['tmp_name']) && !$_FILES['loadedfile']['error'] )
     {
         
$oldname $_FILES['loadedfile']['tmp_name'];
         
$newname md5(microtime()); // random name generation
         
$opt pathinfo($_FILES['loadedfile']['name']);
         
$opt $opt['extension'];
         if(
$opt == '')
            
$opt 'tmp';
         
move_uploaded_file($oldname"$dir/$newname.$opt");
         
header("Location: ".$_SERVER['PHP_SELF']);
         exit();
     }
  }

  echo 
"<a href=?upload>Upload new file</a><hr>"// upload reference


  
$res opendir($dir); // directory lister
  
if($res)
  {
      while(
$file readdir($res))
      {
          if(
$file[0] != '.' && is_file("$dir/$file"))
              echo 
"<a href=$hdir/$file target = _blank>$file<br/>\r\n";
      }
      
closedir($res);
  }
?>

Зануда, это человек, которому проще отдаться, чем объяснить свое нежелание это делать.

   
 
 автор: Волчонок   (28.07.2007 в 09:37)   письмо автору
 
   для: Trianon   (28.07.2007 в 00:39)
 

Спасибо конечно, за то что постарались и помогли но вы могли бы спокойной написать мне что не хотите помогать.. это на будуюшее (( я бы понял бы (

   
 
 автор: Trianon   (28.07.2007 в 15:13)   письмо автору
 
   для: Волчонок   (28.07.2007 в 09:37)
 

В том то и дело. Не помогать. Мешать не хочу.
Вы просите решение, которое вредно в самой своей сути, отказываясь от предлагаемых Вам корректных путей.
Ну да проехали....

   
Rambler's Top100
вверх

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