|
Загрузка пользователем файла и картинки к нему (модуль Files для Slaed 2.1 Lite)
В стандартном варианте пользователю ну никак не загрузить скриншот с компьютера вместе с файлом - по умолчанию скриншот должен хранится на каком-то другом сайте, что очень неудобно пользователям.
Сегодня мы решим эту проблему стандартными функицями Slaed 2.1
II. Редактируем modules/Files/admin/index.php
3.1. После того, как администратор принял решение о размещении или удалении присланного пользователем файла необходимо также разместить или удалить картинку из временного каталога. Привожу начала соответствующих функций
Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| function delit_file($lid, $ok=0) {
global $prefix, $db, $temp_path, $path, $admin_file;
if ($ok==1) {
#---------------------------- начало изменений - в запрос добавлено поле img
$sql = "SELECT url, img FROM ".$prefix."_files WHERE lid=$lid";
#---------------------------- конец изменений
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$filelink = $row[url];
$filel = array_reverse(explode("/", $filelink));
if (file_exists("".$temp_path."/".$filel[0]."")) {
$delf = "".$temp_path."/".$filel[0]."";
@unlink($delf);
}
if (file_exists("".$path."/".$filel[0]."")) {
$delf = "".$path."/".$filel[0]."";
@unlink($delf);
}
#---------------------------- начало изменений
$filelink = $row[img];
$filel = array_reverse(explode("/", $filelink));
if (file_exists("".$temp_path."/".$filel[0]."")) {
$delf = "".$temp_path."/".$filel[0]."";
@unlink($delf);
}
if (file_exists("".$path."/".$filel[0]."")) {
$delf = "".$path."/".$filel[0]."";
@unlink($delf);
}
#---------------------------- конец изменений |
Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function file_add_save($lid, $title, $description, $cid, $filelink, $imglink, $author, $authormail, $authorurl, $f_version, $filesize) {
global $prefix, $db, $temp_path, $path, $admin_file;
$description = (intval($_POST['usehtml'])) ? nl2br(stripslashes($description)) : nl2br(stripslashes(text_filter($description, 2)));
$filel = array_reverse(explode("/", $filelink));
if (file_exists("".$temp_path."/".$filel[0]."")) {
$oldfile = "".$temp_path."/".$filel[0]."";
$newfile = "".$path."/".$filel[0]."";
@rename($oldfile, $newfile);
$filelink = "".$path."/".$filel[0]."";
}
#---------------------------- начало изменений
$filel = array_reverse(explode("/", $imglink));
if (file_exists("".$temp_path."/".$filel[0]."")) {
$oldfile = "".$temp_path."/".$filel[0]."";
$newfile = "".$path."/".$filel[0]."";
@rename($oldfile, $newfile);
$imglink = "".$path."/".$filel[0]."";
}
#---------------------------- конец изменений |
Т.е. происходят теже действия, как и с загруженным файлом, только мы подменили в коде ссылку на картинку.
На этом всё.
Не забудбте выставить параметры на картинки в конфигурациях модуля.
Файлы из дистрибутива системы со всем внесёнными изменениями можно скачать тут.
Дата публикации: 04.02.2007 Прочитано: 11227 раз |
|
Всего 1 на 2 страницах по 1 на каждой странице [<<] [ 1 | 2 ] |
|
Комментарии
MrSmit | | | Дата: 02.08.2007 | Комментарий: 15 |
| | Заработало!!! Serg_pnz спасибо тебе что помогаешь таким неучам как я. | | Serg_pnz | | | | | Дата: 02.08.2007 | Комментарий: 14 |
| | Вот ошибка.
Код | 1 2
| $sql = "SELECT url, img FROM ".$prefix."_files WHERE lid=$lid";
$sql = "SELECT url FROM ".$prefix."_files WHERE lid=$lid"; |
Надо добавить в запрос поле, а не добавить мою строку.
Т.е. в данном случае вторая строка лишняя. Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот | | MrSmit | | | Дата: 02.08.2007 | Комментарий: 13 |
| | PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <?php function delit_file($lid, $ok=0) { global $prefix, $db, $temp_path, $path, $admin_file; if ($ok==1) { $sql = "SELECT url, img FROM ".$prefix."_files WHERE lid=$lid"; $sql = "SELECT url FROM ".$prefix."_files WHERE lid=$lid"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $filelink = $row[url]; $filel = array_reverse(explode("/", $filelink)); if (file_exists("".$temp_path."/".$filel[0]."")) { $delf = "".$temp_path."/".$filel[0].""; @unlink($delf); } if (file_exists("".$path."/".$filel[0]."")) { $delf = "".$path."/".$filel[0].""; @unlink($delf); } $filelink = $row[img]; $filel = array_reverse(explode("/", $filelink)); if (file_exists("".$temp_path."/".$filel[0]."")) { $delf = "".$temp_path."/".$filel[0].""; @unlink($delf); } if (file_exists("".$path."/".$filel[0]."")) { $delf = "".$path."/".$filel[0].""; @unlink($delf); } $db->sql_query("DELETE FROM ".$prefix."_comment WHERE cid='$lid' AND modul='Files'"); $db->sql_query("DELETE FROM ".$prefix."_files WHERE lid='$lid'"); Header("Location: ".$admin_file.".php?op=files"); } else { list($title) = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_files WHERE lid='$lid'")); head(); FilesNavi(); OpenTable(); echo "<center>"._DELETE." \"$title\"? CloseTable(); foot(); } } ?> |
| | Serg_pnz | | | | | Дата: 02.08.2007 | Комментарий: 12 |
| | MrSmit, в п.3.1. поле img в функции function delit_file($lid, $ok=0) в запросе добавил?
Выложи эту функцию, я гляну Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот | | MrSmit | | | Дата: 02.08.2007 | Комментарий: 11 |
| | Всетаки и в папке темп картинка остается, не удаляется | | MrSmit | | | Дата: 02.08.2007 | Комментарий: 10 |
| | Неа... всеравно не хотит.. в настройка указал путь к public (место где лежит картинка) но всеравно неудалило | | Serg_pnz | | | | | Дата: 02.08.2007 | Комментарий: 9 |
| | MrSmit, дело точно не в версии. Картинка переносится из темп в паблик, туда, где файл...
Функция делит одна на админку, так что если с темп работает, то и с остальным работать должна.
Проверь в конфиге какой у тебя стоит путь до картинок? Также нужно посмотреть какой путь к картинке прописан в базе в таблице...
Может из-за этого? Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот | | MrSmit | | | Дата: 02.08.2007 | Комментарий: 8 |
| | Та до конца я ее дочитал.. но я говорю то что у меня не удаляются.... Это скорее всего что из-за версии, у меня 2,4
Ты скорее всего меня непонял... с папочки темп оно удаляется... а уже послепроверки админом, уже нет
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ отредактированно 02.08.2007г. | | Serg_pnz | | | | | Дата: 02.08.2007 | Комментарий: 7 |
| | Прочитать статью до конца Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот | | MrSmit | | | Дата: 02.08.2007 | Комментарий: 6 |
| | А если файл был подтвержден и добавлен администратором, и потом удалить файл, то картинка остается в папке public, не удаляется... Как это исправить? |
|
|
Всего 25 на 3 страницах по 10 на каждой странице [<<] [ 1 | 2 | 3 ] [>>] |
|
|
|