|
|
|
| Написал скрипт загрузки файлов, суть его такова:
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 "не подключились!"; }
|
Все работает кроме последнего шага, не переименовывает файл расположенный в директории! Где ошибка? | |
|
|
|
|
|
|
|
для: clubxaliav
(29.08.2011 в 13:10)
| | Возможно у вас файлы сохранены с разрешением только для чтения? | |
|
|
|
|
|
|
|
для: Lotanaen
(29.08.2011 в 13:41)
| | скрипт не передает старое имя файла пишет Array, по этому не находит с таким именем для переименования | |
|
|
|
|
|
|
|
для: clubxaliav
(29.08.2011 в 13:58)
| | А укажите строку, где происходит переименование? | |
|
|
|
|
|
|
|
для: clubxaliav
(29.08.2011 в 13:10)
| | Нашел ошибку, и все заработало.... | |
|
|
|