viiprogrammer Опубликовано 13 ноября, 2015 Жалоба Поделиться Опубликовано 13 ноября, 2015 Описание: На vii engine после загрузки новой аватарки или каким нибудь образом её смены старая не удаляется из папки (если у вас стоит альбом для ав то хз , может перестать работать если фото для альбома не копирует отдельно). Открыть editprofile.php: Найти : //Загрузка фотографии case "upload": NoAjaxQuery(); //Подключаем класс для фотографий include ENGINE_DIR.'/classes/images.php'; $user_id = $user_info['user_id']; $uploaddir = ROOT_DIR.'/uploads/users/'; //Если нет папок юзера, то создаём её if(!is_dir($uploaddir.$user_id)){ @mkdir($uploaddir.$user_id, 0777 ); @chmod($uploaddir.$user_id, 0777 ); @mkdir($uploaddir.$user_id.'/albums', 0777 ); @chmod($uploaddir.$user_id.'/albums', 0777 ); } //Разришенные форматы $allowed_files = array('jpg', 'jpeg', 'jpe', 'png', 'gif'); //Получаем данные о фотографии $image_tmp = $_FILES['uploadfile']['tmp_name']; $image_name = totranslit($_FILES['uploadfile']['name']); // оригинальное название для оприделения формата $image_rename = substr(md5($server_time+rand(1,100000)), 0, 15); // имя фотографии $image_size = $_FILES['uploadfile']['size']; // размер файла $type = end(explode(".", $image_name)); // формат файла //Проверям если, формат верный то пропускаем if(in_array($type, $allowed_files)){ if($image_size < 5000000){ $res_type = '.'.$type; $uploaddir = ROOT_DIR.'/uploads/users/'.$user_id.'/'; // Директория куда загружать if(move_uploaded_file($image_tmp, $uploaddir.$image_rename.$res_type)) { //Создание оригинала $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto(770); $tmb->jpeg_quality(95); $tmb->save($uploaddir.'o_'.$image_rename.$res_type); //Создание главной фотографии $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto(200, 1); $tmb->jpeg_quality(97); $tmb->save($uploaddir.$image_rename.$res_type); //Создание уменьшеной копии 50х50 $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto('50x50'); $tmb->jpeg_quality(97); $tmb->save($uploaddir.'50_'.$image_rename.$res_type); //Создание уменьшеной копии 100х100 $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto('100x100'); $tmb->jpeg_quality(97); $tmb->save($uploaddir.'100_'.$image_rename.$res_type); $image_rename = $db->safesql($image_rename); $res_type = $db->safesql($res_type); //Добавляем на стену $row = $db->super_query("SELECT user_sex FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'"); if($row['user_sex'] == 2) $sex_text = 'обновила'; else $sex_text = 'обновил'; $wall_text = "<div class=\"profile_update_photo\"><a href=\"\" onClick=\"Photo.Profile(\'{$user_id}\', \'{$image_rename}{$res_type}\'); return false\"><img src=\"/uploads/users/{$user_id}/o_{$image_rename}{$res_type}\" style=\"margin-top:3px\"></a></div>"; $db->query("INSERT INTO `".PREFIX."_wall` SET author_user_id = '{$user_id}', for_user_id = '{$user_id}', text = '{$wall_text}', add_date = '{$server_time}', type = '{$sex_text} фотографию на странице:'"); $dbid = $db->insert_id(); $db->query("UPDATE `".PREFIX."_users` SET user_wall_num = user_wall_num+1 WHERE user_id = '{$user_id}'"); //Добавляем в ленту новостей $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 1, action_text = '{$wall_text}', obj_id = '{$dbid}', action_time = '{$server_time}'"); //Обновляем имя фотки в бд $db->query("UPDATE `".PREFIX."_users` SET user_photo = '{$image_rename}{$res_type}', user_wall_id = '{$dbid}' WHERE user_id = '{$user_id}'"); echo $config['home_url'].'uploads/users/'.$user_id.'/'.$image_rename.$res_type; mozg_clear_cache_file('user_'.$user_id.'/profile_'.$user_id); mozg_clear_cache(); } else echo 'bad'; } else echo 'big_size'; } else echo 'bad_format'; die(); break; И заменить на: //Загрузка фотографии case "upload": NoAjaxQuery(); //Подключаем класс для фотографий include ENGINE_DIR.'/classes/images.php'; $user_id = $user_info['user_id']; $uploaddir = ROOT_DIR.'/uploads/users/'; //Если нет папок юзера, то создаём её if(!is_dir($uploaddir.$user_id)){ @mkdir($uploaddir.$user_id, 0777 ); @chmod($uploaddir.$user_id, 0777 ); @mkdir($uploaddir.$user_id.'/albums', 0777 ); @chmod($uploaddir.$user_id.'/albums', 0777 ); } $uploaddirdel = ROOT_DIR.'/uploads/users/'.$user_id.'/'; $row = $db->super_query("SELECT user_photo, user_wall_id FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'"); @unlink($uploaddirdel.$row['user_photo']); @unlink($uploaddirdel.'50_'.$row['user_photo']); @unlink($uploaddirdel.'100_'.$row['user_photo']); @unlink($uploaddirdel.'o_'.$row['user_photo']); @unlink($uploaddirdel.'130_'.$row['user_photo']); $db->query("UPDATE `".PREFIX."_users` SET user_photo = '' WHERE user_id = '{$user_id}'"); $check_wall_rec = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_wall` WHERE id = '{$row['user_wall_id']}'"); if($check_wall_rec['cnt']){ $update_wall = ", user_wall_num = user_wall_num-1"; $db->query("DELETE FROM `".PREFIX."_wall` WHERE id = '{$row['user_wall_id']}'"); $db->query("DELETE FROM `".PREFIX."_news` WHERE obj_id = '{$row['user_wall_id']}'"); } //Разришенные форматы $allowed_files = array('jpg', 'jpeg', 'jpe', 'png', 'gif'); //Получаем данные о фотографии $image_tmp = $_FILES['uploadfile']['tmp_name']; $image_name = totranslit($_FILES['uploadfile']['name']); // оригинальное название для оприделения формата $image_rename = substr(md5($server_time+rand(1,100000)), 0, 15); // имя фотографии $image_size = $_FILES['uploadfile']['size']; // размер файла $type = end(explode(".", $image_name)); // формат файла //Проверям если, формат верный то пропускаем if(in_array($type, $allowed_files)){ if($image_size < 5000000){ $res_type = '.'.$type; $uploaddir = ROOT_DIR.'/uploads/users/'.$user_id.'/'; // Директория куда загружать if(move_uploaded_file($image_tmp, $uploaddir.$image_rename.$res_type)) { //Создание оригинала $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto(770); $tmb->jpeg_quality(95); $tmb->save($uploaddir.'o_'.$image_rename.$res_type); //Создание главной фотографии $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto(200, 1); $tmb->jpeg_quality(97); $tmb->save($uploaddir.$image_rename.$res_type); //Создание уменьшеной копии 50х50 $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto('50x50'); $tmb->jpeg_quality(97); $tmb->save($uploaddir.'50_'.$image_rename.$res_type); //Создание уменьшеной копии 100х100 $tmb = new thumbnail($uploaddir.$image_rename.$res_type); $tmb->size_auto('100x100'); $tmb->jpeg_quality(97); $tmb->save($uploaddir.'100_'.$image_rename.$res_type); $image_rename = $db->safesql($image_rename); $res_type = $db->safesql($res_type); //Добавляем на стену $row = $db->super_query("SELECT user_sex FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'"); if($row['user_sex'] == 2) $sex_text = 'обновила'; else $sex_text = 'обновил'; $wall_text = "<div class=\"profile_update_photo\"><a href=\"\" onClick=\"Photo.Profile(\'{$user_id}\', \'{$image_rename}{$res_type}\'); return false\"><img src=\"/uploads/users/{$user_id}/o_{$image_rename}{$res_type}\" style=\"margin-top:3px\"></a></div>"; $db->query("INSERT INTO `".PREFIX."_wall` SET author_user_id = '{$user_id}', for_user_id = '{$user_id}', text = '{$wall_text}', add_date = '{$server_time}', type = '{$sex_text} фотографию на странице:'"); $dbid = $db->insert_id(); $db->query("UPDATE `".PREFIX."_users` SET user_wall_num = user_wall_num+1 WHERE user_id = '{$user_id}'"); //Добавляем в ленту новостей $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 1, action_text = '{$wall_text}', obj_id = '{$dbid}', action_time = '{$server_time}'"); //Обновляем имя фотки в бд $db->query("UPDATE `".PREFIX."_users` SET user_photo = '{$image_rename}{$res_type}', user_wall_id = '{$dbid}' WHERE user_id = '{$user_id}'"); echo $config['home_url'].'uploads/users/'.$user_id.'/'.$image_rename.$res_type; mozg_clear_cache_file('user_'.$user_id.'/profile_'.$user_id); mozg_clear_cache(); } else echo 'bad'; } else echo 'big_size'; } else echo 'bad_format'; die(); break; Открыть photo.php: Найти: //################### Помещение фотографии на свою страницу ###################// case "crop": NoAjaxQuery(); $pid = intval($_POST['pid']); $i_left = intval($_POST['i_left']); $i_top = intval($_POST['i_top']); $i_width = intval($_POST['i_width']); $i_height = intval($_POST['i_height']); $check_photo = $db->super_query("SELECT photo_name, album_id FROM `".PREFIX."_photos` WHERE id = '{$pid}' AND user_id = '{$user_id}'"); if($check_photo AND $i_width >= 100 AND $i_height >= 100 AND $i_left >= 0 AND $i_height >= 0){ $imgInfo = explode('.', $check_photo['photo_name']); $newName = substr(md5($server_time.$check_photo['check_photo']), 0, 15).".".$imgInfo[1]; $newDir = ROOT_DIR."/uploads/users/{$user_id}/"; include ENGINE_DIR.'/classes/images.php'; //Создаём оригинал $tmb = new thumbnail(ROOT_DIR."/uploads/users/{$user_id}/albums/{$check_photo['album_id']}/{$check_photo['photo_name']}"); $tmb->size_auto($i_width."x".$i_height, 0, "{$i_left}|{$i_top}"); $tmb->jpeg_quality(90); $tmb->save($newDir."o_{$newName}"); //Создание главной фотографии $tmb = new thumbnail($newDir."o_{$newName}"); $tmb->size_auto(200, 1); $tmb->jpeg_quality(100); $tmb->save($newDir.$newName); //Создание уменьшеной копии 50х50 $tmb = new thumbnail($newDir."o_{$newName}"); $tmb->size_auto('50x50'); $tmb->jpeg_quality(100); $tmb->save($newDir.'50_'.$newName); //Создание уменьшеной копии 100х100 $tmb = new thumbnail($newDir."o_{$newName}"); $tmb->size_auto('100x100'); $tmb->jpeg_quality(100); $tmb->save($newDir.'100_'.$newName); //Добавляем на стену $row = $db->super_query("SELECT user_sex FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'"); if($row['user_sex'] == 2) $sex_text = 'обновила'; else $sex_text = 'обновил'; $wall_text = "<div class=\"profile_update_photo\"><a href=\"\" onClick=\"Photo.Profile(\'{$user_id}\', \'{$newName}\'); return false\"><img src=\"/uploads/users/{$user_id}/o_{$newName}\" style=\"margin-top:3px\"></a></div>"; $db->query("INSERT INTO `".PREFIX."_wall` SET author_user_id = '{$user_id}', for_user_id = '{$user_id}', text = '{$wall_text}', add_date = '{$server_time}', type = '{$sex_text} фотографию на странице:'"); $dbid = $db->insert_id(); $db->query("UPDATE `".PREFIX."_users` SET user_wall_num = user_wall_num+1 WHERE user_id = '{$user_id}'"); //Добавляем в ленту новостей $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 1, action_text = '{$wall_text}', obj_id = '{$dbid}', action_time = '{$server_time}'"); //Обновляем имя фотки в бд $db->query("UPDATE `".PREFIX."_users` SET user_photo = '{$newName}', user_wall_id = '{$dbid}' WHERE user_id = '{$user_id}'"); mozg_clear_cache_file("user_{$user_id}/profile_{$user_id}"); mozg_clear_cache(); } die(); break; Заменить на: //################### Помещение фотографии на свою страницу ###################// case "crop": NoAjaxQuery(); $pid = intval($_POST['pid']); $i_left = intval($_POST['i_left']); $i_top = intval($_POST['i_top']); $i_width = intval($_POST['i_width']); $i_height = intval($_POST['i_height']); $check_photo = $db->super_query("SELECT photo_name, album_id FROM `".PREFIX."_photos` WHERE id = '{$pid}' AND user_id = '{$user_id}'"); if($check_photo AND $i_width >= 100 AND $i_height >= 100 AND $i_left >= 0 AND $i_height >= 0){ $imgInfo = explode('.', $check_photo['photo_name']); $newName = substr(md5($server_time.$check_photo['check_photo']), 0, 15).".".$imgInfo[1]; $newDir = ROOT_DIR."/uploads/users/{$user_id}/"; include ENGINE_DIR.'/classes/images.php'; $uploaddirdel = ROOT_DIR.'/uploads/users/'.$user_id.'/'; $row = $db->super_query("SELECT user_photo, user_wall_id FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'"); @unlink($uploaddirdel.$row['user_photo']); @unlink($uploaddirdel.'50_'.$row['user_photo']); @unlink($uploaddirdel.'100_'.$row['user_photo']); @unlink($uploaddirdel.'o_'.$row['user_photo']); @unlink($uploaddirdel.'130_'.$row['user_photo']); $db->query("UPDATE `".PREFIX."_users` SET user_photo = '' WHERE user_id = '{$user_id}'"); $check_wall_rec = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_wall` WHERE id = '{$row['user_wall_id']}'"); if($check_wall_rec['cnt']){ $update_wall = ", user_wall_num = user_wall_num-1"; $db->query("DELETE FROM `".PREFIX."_wall` WHERE id = '{$row['user_wall_id']}'"); $db->query("DELETE FROM `".PREFIX."_news` WHERE obj_id = '{$row['user_wall_id']}'"); } //Создаём оригинал $tmb = new thumbnail(ROOT_DIR."/uploads/users/{$user_id}/albums/{$check_photo['album_id']}/{$check_photo['photo_name']}"); $tmb->size_auto($i_width."x".$i_height, 0, "{$i_left}|{$i_top}"); $tmb->jpeg_quality(90); $tmb->save($newDir."o_{$newName}"); //Создание главной фотографии $tmb = new thumbnail($newDir."o_{$newName}"); $tmb->size_auto(200, 1); $tmb->jpeg_quality(100); $tmb->save($newDir.$newName); //Создание уменьшеной копии 50х50 $tmb = new thumbnail($newDir."o_{$newName}"); $tmb->size_auto('50x50'); $tmb->jpeg_quality(100); $tmb->save($newDir.'50_'.$newName); //Создание уменьшеной копии 100х100 $tmb = new thumbnail($newDir."o_{$newName}"); $tmb->size_auto('100x100'); $tmb->jpeg_quality(100); $tmb->save($newDir.'100_'.$newName); //Добавляем на стену $row = $db->super_query("SELECT user_sex FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'"); if($row['user_sex'] == 2) $sex_text = 'обновила'; else $sex_text = 'обновил'; $wall_text = "<div class=\"profile_update_photo\"><a href=\"\" onClick=\"Photo.Profile(\'{$user_id}\', \'{$newName}\'); return false\"><img src=\"/uploads/users/{$user_id}/o_{$newName}\" style=\"margin-top:3px\"></a></div>"; $db->query("INSERT INTO `".PREFIX."_wall` SET author_user_id = '{$user_id}', for_user_id = '{$user_id}', text = '{$wall_text}', add_date = '{$server_time}', type = '{$sex_text} фотографию на странице:'"); $dbid = $db->insert_id(); $db->query("UPDATE `".PREFIX."_users` SET user_wall_num = user_wall_num+1 WHERE user_id = '{$user_id}'"); //Добавляем в ленту новостей $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 1, action_text = '{$wall_text}', obj_id = '{$dbid}', action_time = '{$server_time}'"); //Обновляем имя фотки в бд $db->query("UPDATE `".PREFIX."_users` SET user_photo = '{$newName}', user_wall_id = '{$dbid}' WHERE user_id = '{$user_id}'"); mozg_clear_cache_file("user_{$user_id}/profile_{$user_id}"); mozg_clear_cache(); } die(); break; 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
timbios Опубликовано 13 ноября, 2015 Жалоба Поделиться Опубликовано 13 ноября, 2015 Ухх ты, вот это полезная штука) Ссылка на комментарий Поделиться на другие сайты Поделиться
AdVest Опубликовано 13 ноября, 2015 Жалоба Поделиться Опубликовано 13 ноября, 2015 Описание: На vii engine после загрузки новой аватарки или каким нибудь образом её смены старая не удаляется из папки (если у вас стоит альбом для ав то хз , может перестать работать если фото для альбома не копирует отдельно). А можно вопрос, как сделать, чтобы при помещении авы из какого либо альбома, она записывалась, в альбом фото со страницы? Просто, если его помещаешь оно не увеличивается,т.к ава из старого альбома подружается. Ссылка на комментарий Поделиться на другие сайты Поделиться
viiprogrammer Опубликовано 13 ноября, 2015 Автор Жалоба Поделиться Опубликовано 13 ноября, 2015 А можно вопрос, как сделать, чтобы при помещении авы из какого либо альбома, она записывалась, в альбом фото со страницы? Просто, если его помещаешь оно не увеличивается,т.к ава из старого альбома подружается. Всм не увеличивается ... не понял.. Ссылка на комментарий Поделиться на другие сайты Поделиться
AdVest Опубликовано 13 ноября, 2015 Жалоба Поделиться Опубликовано 13 ноября, 2015 Всм не увеличивается ... не понял.. помнишь, поместить фотографию на главную есть когда альбом смотришь так вот, нужно как то сделать, чтобы он его сохранял и считывал не с того альбома с какого мы его помещаем, а с альбома "фото со страницы", ну который системный. Ссылка на комментарий Поделиться на другие сайты Поделиться
viiprogrammer Опубликовано 13 ноября, 2015 Автор Жалоба Поделиться Опубликовано 13 ноября, 2015 помнишь, поместить фотографию на главную есть когда альбом смотришь так вот, нужно как то сделать, чтобы он его сохранял и считывал не с того альбома с какого мы его помещаем, а с альбома "фото со страницы", ну который системный. так сделай копирование с помощью copy() и делай запрос в бд добавляющий в альбом Ссылка на комментарий Поделиться на другие сайты Поделиться
AdVest Опубликовано 13 ноября, 2015 Жалоба Поделиться Опубликовано 13 ноября, 2015 так сделай копирование с помощью copy() и делай запрос в бд добавляющий в альбом просьба, а пример можно? просто не совсем одупляю насчет copy() Ссылка на комментарий Поделиться на другие сайты Поделиться
viiprogrammer Опубликовано 13 ноября, 2015 Автор Жалоба Поделиться Опубликовано 13 ноября, 2015 просьба, а пример можно? просто не совсем одупляю насчет copy() Кароче используется copy так <?php $file = 'тут путь с файлу'; $newfile = 'тут путь к файлу куда он будет скопирован в месте с названием файла'; $copy = copy($file, $newfile) if (!$copy) { echo "Ошибка файл не скопирован!"; } ?> Ссылка на комментарий Поделиться на другие сайты Поделиться
AdVest Опубликовано 13 ноября, 2015 Жалоба Поделиться Опубликовано 13 ноября, 2015 Кароче используется copy так <?php $file = 'тут путь с файлу'; $newfile = 'тут путь к файлу куда он будет скопирован в месте с названием файла'; $copy = copy($file, $newfile) if (!$copy) { echo "Ошибка файл не скопирован!"; } ?> ок спасибо попробую, отпишу по результатам. Ссылка на комментарий Поделиться на другие сайты Поделиться
PARN!SHKA_RU Опубликовано 28 ноября, 2015 Жалоба Поделиться Опубликовано 28 ноября, 2015 После этого когда загружаю фото пишет это:Загружать разрешено только фотографии в формате JPG, PNG, GIF. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения