Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

Добавление папки uploads2


Рекомендуемые сообщения

Нигде не увидел данного вопроса и соответственно ответа на него. Часть кода получилось перелопатить, но возникают загвоздки в некоторых моментах. 

Суть в том, чтобы добавить к имеющейся папке uploads, другую папку uploads2(например). Имеющиеся файлы должны стягиваться с uploads, новые файлы загружаются вновь созданную uploads2. Т.е. две рабочие папки uploads...с возможностью добавлять в дальнейшем новые папки uploads3 и т.д.

Трудности возникли в attache и js, т.е. везде где идет проверка файлов по заданному пути (file_exists) без запроса с БД. Есть кто может такое провернуть или подсказать в решении данной проблемы.

Изменено пользователем estverum
Ссылка на комментарий
Поделиться на другие сайты

45 минут назад, estverum сказал:

Нигде не увидел данного вопроса и соответственно ответа на него. Часть кода получилось перелопатить, но возникают загвоздки в некоторых моментах. 

Суть в том, чтобы добавить к имеющейся папке uploads, другую папку uploads2(например). Имеющиеся файлы должны стягиваться с uploads, новые файлы загружаются вновь созданную uploads2. Т.е. две рабочие папки uploads...с возможностью добавлять в дальнейшем новые папки uploads3 и т.д.

Трудности возникли в attache и js, т.е. везде где идет проверка файлов по заданному пути (file_exists) без запроса с БД. Есть кто может такой провернуть или подсказать в решении данной проблемы.

Типа фото в uploads а музыка в uploads2??? 

Ссылка на комментарий
Поделиться на другие сайты

16 минут назад, Leymelki сказал:

Типа фото в uploads а музыка в uploads2??? 

Нет. В папке uploads остаются имеющиеся файлы - оттуда будут только браться файлы для отображения. В папку uploads2 - будут грузиться новые файлы - attach, video, photo, users и т.д., При создании uploads3, такая же история будет, т.е. в uploads и uploads2 файл не будут добавляться, а будут в uploads3. 

Это актуально тем, у кого uploads имеет большие размеры, что не позволяет постоянно делать резерв.

Ссылка на комментарий
Поделиться на другие сайты

25 минут назад, estverum сказал:

Нет. В папке uploads остаются имеющиеся файлы - оттуда будут только браться файлы для отображения. В папку uploads2 - будут грузиться новые файлы - attach, video, photo, users и т.д., При создании uploads3, такая же история будет, т.е. в uploads и uploads2 файл не будут добавляться, а будут в uploads3. 

Это актуально тем, у кого uploads имеет большие размеры, что не позволяет постоянно делать резерв.

Я так понял тебе надо загрузку файлов на поддомен на внешние сервера как у вк?

Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, PHPSocial сказал:

Я так понял тебе надо загрузку файлов на поддомен на внешние сервера как у вк?

Можно и так...но на самом деле подойдет и внутри папок сервера. Т.е. разницы нет. Проще я думаю, если все будет в пределах одного сервера. Это для удобства архивации - проще делать архивы по 100Гб, чем постоянно гонять 400Гб

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, estverum сказал:

Можно и так...но на самом деле подойдет и внутри папок сервера. Т.е. разницы нет. Проще я думаю, если все будет в пределах одного сервера. Это для удобства архивации - проще делать архивы по 100Гб, чем постоянно гонять 400Гб

Ну вообще то ты не прав лучше на 3-5 серверах размещать файлы что бы нагрузки не было на основной...

Я могу сделать тебе что надо но только платно

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, PHPSocial сказал:

Ну вообще то ты не прав лучше на 3-5 серверах размещать файлы что бы нагрузки не было на основной...

Я могу сделать тебе что надо но только платно

Нагрузка только на hdd идет. Остальное будет нагружаться одинаково. Мне без разницы - на домен или в папку. Главное чтобы принцип был идентичен.

Сроки - сумма. Необходимо в виде инструкции что куда и как добавить. Файлы идентичны имеющимся.

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, estverum сказал:

Нагрузка только на hdd идет. Остальное будет нагружаться одинаково. Мне без разницы - на домен или в папку. Главное чтобы принцип был идентичен.

Сроки - сумма. Необходимо в виде инструкции что куда и как добавить. Файлы идентичны имеющимся.

Пиши в вк Юра Балаж

Ссылка на комментарий
Поделиться на другие сайты

31 минуту назад, estverum сказал:

Нагрузка только на hdd идет. Остальное будет нагружаться одинаково. Мне без разницы - на домен или в папку. Главное чтобы принцип был идентичен.

Сроки - сумма. Необходимо в виде инструкции что куда и как добавить. Файлы идентичны имеющимся.

Такое уже сделано, и поделились этим бесплатно, не плати за то что уже дали бесплатно

Ссылка на комментарий
Поделиться на другие сайты

33 минуты назад, estverum сказал:

Нагрузка только на hdd идет. Остальное будет нагружаться одинаково. Мне без разницы - на домен или в папку. Главное чтобы принцип был идентичен.

Сроки - сумма. Необходимо в виде инструкции что куда и как добавить. Файлы идентичны имеющимся.

Есть как файлы сохранять на другой домин и есть как хранить на яндекс диске(все это есть в бесплатном доступе) не плати просто поищи

Ссылка на комментарий
Поделиться на другие сайты

38 минут назад, PHPSocial сказал:

Пиши в вк Юра Балаж

Если бы я хотел с тобой связаться через вк - так и сделал бы. Я вкурсе,кто ты по твоему нику.

Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, Leymelki сказал:

Есть как файлы сохранять на другой домин и есть как хранить на яндекс диске(все это есть в бесплатном доступе) не плати просто поищи

Но нет как сохранять на свой сервер то что ему надо!

Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, Leymelki сказал:

Есть как файлы сохранять на другой домин и есть как хранить на яндекс диске(все это есть в бесплатном доступе) не плати просто поищи

Я видел этот модуль. Там идет сохранение документов. Я знаю автора данного модуля. У меня возникла просто трудность с прописанием путей в attached и js,все остальное уже сделано.

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, estverum сказал:

Если бы я хотел с тобой связаться через вк - так и сделал бы. Я вкурсе,кто ты по твоему нику.

Понятно

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, PHPSocial сказал:

Но нет как сохранять на свой сервер то что ему надо!

Да я уже половина этого сделал. Прописал поля в бд,в файла откорректировал запросы в бд на ввод и вывод. Проблема осталась только в прикрепленных файлах и js. Я про эти файлы и писал - сколько будет стоить в них внести правильную корректровку.

Изменено пользователем estverum
Ссылка на комментарий
Поделиться на другие сайты

Только что, estverum сказал:

Да я уже половина этого сделал. Прописал поля в бд,в файла откорректировал запросы в бд на ввод и вывод. Проблема осталась только в прикрепленных файлах и js

Ну кинь сюда или мне в ЛС файл где надо сделать 

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, PHPSocial сказал:

Ну кинь сюда или мне в ЛС файл где надо сделать 

Пример кода.

function attached($query){
		global $db;
		
				$attach_arr = explode('||', $query['attach']);
				$cnt_attach = 1;
				$cnt_attach_link = 1;
				$jid = 0;
				$attach_result = '';
				$up_hdd = $query['hdd_at'];
				$up_hdd_user = $query['hdd_albums'];
				$up_hdd_videos = $query['hdd_videos'];
				foreach($attach_arr as $attach_file){
					$attach_type = explode('|', $attach_file);
					//Фото со стены юзера
					 if($attach_type[0] == 'photo_u'){
						if($query['tell_uid']) $attauthor_user_id = $query['tell_uid'];
						elseif($query['author_user_id']) $attauthor_user_id = $query['author_user_id'];
						elseif($query['auser_id']) $attauthor_user_id = $query['auser_id'];
						elseif($query['user_id']) $attauthor_user_id = $query['owner_id'];
						elseif($query['public_id']) $attauthor_user_id = $query['public_id'];

						if($attach_type[1] == 'attach' AND file_exists(ROOT_DIR."/uploads/{$up_hdd}/attach/{$attauthor_user_id}/c_{$attach_type[2]}")){

							if($cnt_attach == 1)
							
								$attach_result .= "<div class=\"profile_comment_attach_photo cursor_pointer page_num{$query['id']}\" onClick=\"groups.wall_photo_view('{$query['id']}', '{$attauthor_user_id}', '{$attach_type[1]}', '{$cnt_attach}', 'photo_u')\"><img id=\"photo_wall_{$query['id']}_{$cnt_attach}\" src=\"/uploads/{$up_hdd}/attach/{$attauthor_user_id}/{$attach_type[2]}\" align=\"left\" /></div>";

							else
								
								$attach_result .= "<img id=\"photo_wall_{$query['id']}_{$cnt_attach}\" src=\"/uploads/{$up_hdd}/attach/{$attauthor_user_id}/c_{$attach_type[2]}\" style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$query['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$query['id']}\" height=\"{$rodImHeigh}\" />";
								
							
							$cnt_attach++;

							
						} elseif(file_exists(ROOT_DIR."/uploads/{$up_hdd_user}/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}")){
						
							if($cnt_attach < 2)
								$attach_result .= "<div class=\"profile_comment_attach_photo cursor_pointer page_num{$query['id']}\" onClick=\"groups.wall_photo_view('{$query['id']}', '{$attauthor_user_id}', '{$attach_type[1]}', '{$cnt_attach}', 'photo_u')\"><img id=\"photo_wall_{$query['id']}_{$cnt_attach}\" src=\"/uploads/{$up_hdd_user}/users/{$attauthor_user_id}/albums/{$attach_type[2]}/{$attach_type[1]}\" align=\"left\" /></div>";
							else
								$attach_result .= "<img id=\"photo_wall_{$query['id']}_{$cnt_attach}\" src=\"/uploads/{$up_hdd_user}/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}\" style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$query['id']}', '{$query['tell_uid']}', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$query['id']}\" />";
								
							$cnt_attach++;
						}
						
						$resLinkTitle = '';

					//Видео
					} elseif($attach_type[0] == 'video' AND file_exists(ROOT_DIR."/uploads/{$up_hdd_videos}/videos/{$attach_type[3]}/{$attach_type[1]}")){
					
						$for_cnt_attach_video = explode('video|', $query['attach']);
						$cnt_attach_video = count($for_cnt_attach_video)-1;
				
						if($cnt_attach_video == 1 AND preg_match('/(photo|photo_u)/i', $query['attach']) == false){
							
							$video_id = intval($attach_type[2]);
							
							$row_video = $db->super_query("SELECT video, title, hdd_videos FROM `".PREFIX."_videos` WHERE id = '{$video_id}'", false, "wall/video{$video_id}");
							$row_video['title'] = stripslashes($row_video['title']);
							$row_video['video'] = stripslashes($row_video['video']);
							$row_video['video'] = strtr($row_video['video'], array('width="770"' => 'width="390"', 'height="420"' => 'height="310"'));
							
							$attach_result .= "<div class=\"cursor_pointer\" id=\"no_video_frame{$video_id}\" onClick=\"$('#'+this.id).hide();$('#video_frame{$video_id}').show();\">
							<div class=\"video_inline_icon\"></div><img src=\"/uploads/{$row_video['hdd_videos']}/videos/{$attach_type[3]}/{$attach_type[1]}\" style=\"margin-top:3px\" width=\"390\" height=\"310\" /></div><div id=\"video_frame{$video_id}\" class=\"no_display\" style=\"padding-top:3px\">{$row_video['video']}</div><div class=\"video_inline_vititle\"></div><a href=\"/video{$attach_type[3]}_{$attach_type[2]}\" onClick=\"videos.show({$attach_type[2]}, this.href, location.href); return false\"><b>{$row_video['title']}</b></a>";
						
						} else {
							
							$attach_result .= "<div class=\"fl_l\"><a href=\"/video{$attach_type[3]}_{$attach_type[2]}\" onClick=\"videos.show({$attach_type[2]}, this.href, location.href); return false\"><div class=\"video_inline_icon video_inline_icon2\"></div><img src=\"/uploads/{$row_video['hdd_videos']}/videos/{$attach_type[3]}/{$attach_type[1]}\" style=\"margin-top:3px;margin-right:3px\" align=\"left\" /></a></div>";
							
						}

						$resLinkTitle = '';
						
					//Музыка
					} elseif($attach_type[0] == 'audio'){
						$audioId = intval($attach_type[1]);
						$audioInfo = $db->super_query("SELECT artist, title, url FROM `".PREFIX."_audio` WHERE id = '".$audioId."'");
						if($audioInfo){
							if($_GET['uid']) $appClassWidth = 'player_mini_mbar_wall_all';
							$jid++;
							$attach_result .= '<div class="audioForSize'.$query['id'].' '.$appClassWidth.'" id="audioForSize"><div class="audio_onetrack audio_wall_onemus"><div class="audio_playic cursor_pointer fl_l" onClick="music.newStartPlay(\''.$jid.'\', '.$query['id'].')" id="icPlay_'.$query['id'].$jid.'"></div><div id="music_'.$query['id'].$jid.'" data="'.$audioInfo['url'].'" class="fl_l" style="margin-top:-1px"><a href="/?go=search&type=5&query='.$audioInfo['artist'].'&n=1" onClick="Page.Go(this.href); return false"><b>'.stripslashes($audioInfo['artist']).'</b></a> &ndash; '.stripslashes($audioInfo['title']).'</div><div id="play_time'.$query['id'].$jid.'" class="color777 fl_r no_display" style="margin-top:2px;margin-right:5px">00:00</div><div class="player_mini_mbar fl_l no_display player_mini_mbar_wall '.$appClassWidth.'" id="ppbarPro'.$query['id'].$jid.'"></div></div></div>';
						}
						
						$resLinkTitle = '';
					//Смайлик
					} elseif($attach_type[0] == 'smile' AND file_exists(ROOT_DIR."/uploads/u/smiles/{$attach_type[1]}")){
						$attach_result .= "<img src=\"/uploads/u/smiles/".$attach_type[1]."\" style=\"margin-right:5px\" />";

						$resLinkTitle = '';
						

						
					//Если документ
					} elseif($attach_type[0] == 'doc'){
					
						$doc_id = intval($attach_type[1]);
						
						$row_doc = $db->super_query("SELECT dname, dsize FROM `".PREFIX."_doc` WHERE did = '{$doc_id}'", false, "wall/doc{$doc_id}");
						
						if($row_doc){
							
							$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$query['id'].'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$query['id'].'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
								
							$cnt_attach++;
						}
						

					}  else
					
						$attach_result .= '';

				}
					return $attach_result;
				
			
	}

                $up_hdd = $query['hdd_at'];
                $up_hdd_user = $query['hdd_albums'];
                $up_hdd_videos = $query['hdd_videos'];

Это пути которые пытался вставить, они берутся с полей бд для соответствующих файлов (hdd_at - PREFIX_attached; hdd_albums - PREFIX_albums; hdd_videos - PREFIX_videos), но проблема в том,что данный код не делает запрос в БД)))) , а поиск файла происходит через file_exists и строго заданного пути ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}", вот как в этом пути проставить {$up_hdd}, который будет указывать путь к файлу, у каждого файла он будет разный, на данный момент uploads или uploads2....

Ссылка на комментарий
Поделиться на другие сайты

Мне кажется будет проще написать php функция которая будет считать общий вес папки и если достигнут лимит, при загрузке нового файла,создавать новую папку.

И при загрузке заносить полный путь до файла. Например uploads2\users\1\albums\1\ а тут файл.И само собой на сайте выводить.

Ну или вариант второй.Создать поддомен и грузить всё туда.

Может я немного не правильно понимаю что автор хочет:emoji_1f602:

Ссылка на комментарий
Поделиться на другие сайты

27 минут назад, KirKMS сказал:

Мне кажется будет проще написать php функция которая будет считать общий вес папки и если достигнут лимит, при загрузке нового файла,создавать новую папку.

И при загрузке заносить полный путь до файла. Например uploads2\users\1\albums\1\ а тут файл.И само собой на сайте выводить.

Ну или вариант второй.Создать поддомен и грузить всё туда.

Может я немного не правильно понимаю что автор хочет:emoji_1f602:

Ну это лишний геморой ибо когда будет много файлов твой сайт просто загнется и упадет надо искать более простое решение без лишних проверок лучше всего на поддомен так как я у себя сделал!

Через API

Ссылка на комментарий
Поделиться на другие сайты

В 28.03.2020 в 13:19, PHPSocial сказал:

Ну это лишний геморой ибо когда будет много файлов твой сайт просто загнется и упадет надо искать более простое решение без лишних проверок лучше всего на поддомен так как я у себя сделал!

Через API

если поддомен находится на одном сервере - что изменит??? О какой нагрузке может идти речь, кроме нагрузки на hdd??? Hdd можно примонтировать второй и добавить как папку uploads2

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...