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

Форум PHP

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

 

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

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

тема: Нужна помощь по скрипту для загрузки файлов
 
 автор: clubxaliav   (29.08.2011 в 13:10)   письмо автору
 
 

Написал скрипт загрузки файлов, суть его такова:

1. Найти файлы в директории (FTP) которые не добавлены в бд;
2. Переименовать имя файла с заменой его в директории, с последующим занесением в бд;


$host = get_sysval("name_host");
$user_host = get_sysval("name_userhost");
$pass_host = get_sysval("pass_userhost");

$conn_id = @ftp_connect($host, 21, 5); // коннектимся к серверу FTP
if($conn_id) // если соединение с сервером прошло удачно, продолжаем
 {
   $login_result = @ftp_login($conn_id, $user_host, $pass_host); // вводим свои логин и пароль для FTP
   if($login_result) // если сервер принял логин пароль, идем дальше
    {
      // теперь нужно поиграть с пассивным режимом, включить его или выключить(TRUE, FALSE)
      // если дальнейшие функции ftp будут работать не правильно, пробуйте менять этот параметр (TRUE или FALE)
                   
      ftp_pasv ($conn_id, TRUE); // в данном случае пассивный режим включен


$persona = $_GET['znam'];

$sql = ( "SELECT * FROM $tables[t_persona] WHERE alt_pers = '$persona'" );
$result = mysql_query( $sql );
$row = mysql_fetch_array($result);
$persid = $row['id_pers'];

$img_add = $_POST["checkbox"];

if ($_POST['checkbox']) {  

 for($i = 0; $i < count($img_add); $i++)
   {
         $file = substr($img_add[$i], -3);
         $img_add[$i] = mt_rand(1,100).rand(100,1054).mt_rand(10,150).".".$file;
         
         $direct = "/httpdocs/images/galery/$persona/$img_add";
         $newdirect = "/httpdocs/images/galery/$persona/$img_add[$i]";
         if (ftp_rename($conn_id, $direct, $newdirect)) // изменение имени файла
         {    
             $query[$i] = "INSERT INTO $tables[t_fotogalery] (`id_galery`, `persid`, `img_galery`, `create_date`, `clicks`) VALUES(NULL , '$persid', '$img_add[$i]', '".date("Y-m-j H:i:s")."', '')";
             mysql_query($query[$i]) or die(mysql_error());
             
             echo "<div class=\"info_okk\"><div class=\"info_okk_text\"><b>Информация</b><br>Фотографии загружены в фотоальбом!</div></div>";
             echo "<meta http-equiv=refresh content=2 url=\"fotogalery.php?mod=ftp&znam=$persona\">";
         }
         else { echo "файл не был переименован!"; }
   }
}
 
        
        $directory = "/httpdocs/images/galery/$persona";
        $file_list = ftp_rawlist($conn_id, $directory);
        if(!empty($file_list))
        {
        
         echo "<br /><br /><form action=\"\" method=\"post\"><table style=\"width: 100px; border: 1px solid #dadada;\" class=\"admin_form\">    
                           <tr id=\"td_top\">
                              <td></td>
                              <td>Имя фото</td>
                              </tr>";
         
         foreach($file_list as $file) {
     
         list($prava, $tip, $group, $user, $size, $month, $day, $time, $file) = preg_split("/[\s]+/", $file);
         if(substr($file, 0, 1) == '.') continue;
         
            $query = ( "SELECT * FROM $tables[t_persona], $tables[t_fotogalery] WHERE $tables[t_persona].id_pers = $tables[t_fotogalery].persid AND $tables[t_persona].alt_pers = '$persona' AND $tables[t_fotogalery].img_galery = '$file'" );
            $result = mysql_query( $query );
            $r = mysql_fetch_array($result);
            $img = $r['img_galery'];
                        
            if($file == $img) { $file = "1"; }
            if($file != 1) {
            
                  if ( 0 < $file )
                  {
                     echo "<tr id=\"td_main_2\">
                             <td style=\"width: 25px\"><input type=checkbox name='checkbox[]' value='$file'></td>
                             <td>$file</td>
                          </tr>";
                  }
                  else { echo "Нет фото для добавления в бд!"; }
            }
         }
         
         echo "</table><input type=\"submit\" value=\"Добавить\" name=\"submit_add\"></form>";

        }
    }
    else { echo "пароль или логин не подошли!"; }
}
else { echo "не подключились!"; }



Все работает кроме последнего шага, не переименовывает файл расположенный в директории! Где ошибка?

  Ответить  
 
 автор: Lotanaen   (29.08.2011 в 13:41)   письмо автору
 
   для: clubxaliav   (29.08.2011 в 13:10)
 

Возможно у вас файлы сохранены с разрешением только для чтения?

  Ответить  
 
 автор: clubxaliav   (29.08.2011 в 13:58)   письмо автору
 
   для: Lotanaen   (29.08.2011 в 13:41)
 

скрипт не передает старое имя файла пишет Array, по этому не находит с таким именем для переименования

  Ответить  
 
 автор: cheops   (29.08.2011 в 14:31)   письмо автору
 
   для: clubxaliav   (29.08.2011 в 13:58)
 

А укажите строку, где происходит переименование?

  Ответить  
 
 автор: clubxaliav   (29.08.2011 в 14:28)   письмо автору
 
   для: clubxaliav   (29.08.2011 в 13:10)
 

Нашел ошибку, и все заработало....

  Ответить  
Rambler's Top100
вверх

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