Проблемы с загрузкой файлов - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Проблемы с загрузкой файлов

#1 Пользователь не на сайте   kurtq ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 14-Март 10
  • Репутация: 0
  • IPB version:2.3.x
 

  Отправлено 19 Май 2010 - 19:55

Здрастввуйте. Тут такая проблема, я перенес форум на новый сервер, все вроде бы отлично, но файлы, закачаные на форум (до переноса) скачать невозможно ([#10173] Запрашиваемый вами прикрепленный файл не найден.), а так же невозможно залить новый файл, ни одного разрешения и размера. Помогите, не знаю, что делать. Уже перестраивал кеш, не помогло.
0

#2 Пользователь не на сайте   Ph-A ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 5 558
  • Регистрация: 18-Сентябрь 06
  • Репутация: 382
  • Откуда:Moscow
  • IPB version:3.1.x
 

Отправлено 19 Май 2010 - 20:03

Панель управления > Настройки и инструменты > Системные настройки > Глобальные настройки

Пути и адреса форума
Путь до директории загрузок - Укажите тот, который определяет IPB

Ну и права на папки посмотрите....
0

#3 Пользователь не на сайте   kurtq ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 14-Март 10
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 19 Май 2010 - 20:57

Огромное спасибо! Помогло!
0

#4 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 47
  • Регистрация: 04-Декабрь 11
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Ноябрь 2015 - 14:22

Возникла такая же проблема после обновления версии IPB
Пути указаны верно,права тоже на всех папках и подпапках upload стоят верные, но файлы почему то не определяются, хотя прикрепленные изображения отображаются.
Так же новые файлы нормально загружаются и скачиваются. Что может быть?

UPD:
Нашел вроде бы причину:
В БД адрес файла записан так: monthly_09_2015/post-1-0-96731700-1442694223.ipb
А в папке uploads он называется так: fast_connect_rgmix.eu_v1.5.rar.2feb88e3874c8f4eb9a5aaabda21677a
Если переименовать файл в папке в такой же, как и записан в БД , то файл становится доступным.
Что могло произойти с файлами?
Заметил, что и до обновления было так же, но не знаю с каких пор.

Сообщение изменено: HooLIGUN (12 Ноябрь 2015 - 14:51)

0

#5 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 12 Ноябрь 2015 - 14:39

Просмотреть сообщениеHooLIGUN сказал(а):

но файлы почему то не определяются

До какой версии обновлялись? Код и текст ошибки? Если IPS 4, то следует писать в разделе этой ветке ибо в нем совсем другая структура и другие причины.
1

#6 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 47
  • Регистрация: 04-Декабрь 11
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Ноябрь 2015 - 14:56

Просмотреть сообщениеsiv1987 12 Ноябрь 2015 - 14:39 сказал(а):

До какой версии обновлялись? Код и текст ошибки? Если IPS 4, то следует писать в разделе этой ветке ибо в нем совсем другая структура и другие причины.

с 3.4.7 на 3.4.8.

Я отредактировал свой пред. пост.
Файлы на сервере почему то имеют другое название (название файла.расширение.рандомный набор символов) , отличающиеся от названия в бд
Как бы вернуть прежний вид файлам...
Пример:
Файл в БД
Вложение  1.PNG (5,58К)
Количество загрузок: 7
Файл в папке Uploads
Вложение  2.PNG (2,58К)
Количество загрузок: 10

Но при загрузке новых файлов, они имеют правильное название, например (post-1-0-90129700-1441906836.ipb)

Сообщение изменено: HooLIGUN (12 Ноябрь 2015 - 14:59)

0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 12 Ноябрь 2015 - 15:06

В бд должно быть два названия - оригинальное имя файла (attach_file) и файл сохраненный на диске (attach_location). Если у вас файл на диске носит то же название что и оригинальное название можно заменить attach_location из attach_file. Но опять же, на диске есть какой-то хеш, поэтому скорее всего придется написать скрипт который пройдется по файлам в папке и обновит новое имя в бд с этим хешем, либо наоборот переименует файл на диске.
1

#8 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 47
  • Регистрация: 04-Декабрь 11
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Ноябрь 2015 - 15:14

Просмотреть сообщениеsiv1987 12 Ноябрь 2015 - 15:06 сказал(а):

В бд должно быть два названия - оригинальное имя файла (attach_file) и файл сохраненный на диске (attach_location). Если у вас файл на диске носит то же название что и оригинальное название можно заменить attach_location из attach_file. Но опять же, на диске есть какой-то хеш, поэтому скорее всего придется написать скрипт который пройдется по файлам в папке и обновит новое имя в бд с этим хешем, либо наоборот переименует файл на диске.

то есть этот хэш явно что-то не нормальное?
Что же могло переименовать файлы. Ведь они получается "раскодировались" из названия принятого в ipb post-1-0-27602000-1442758568.ipb , в оригинальное+хэш.
Ну тогда мне проще будет пожертвовать месячными файлами и загрузить файлы из старого бекапа, там они еще нормальные.
Спасибо за ответ.
0

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 12 Ноябрь 2015 - 15:43

Просмотреть сообщениеHooLIGUN сказал(а):

то есть этот хэш явно что-то не нормальное?

Хеш это нормально, видимо для того, чтобы не получить на сервере файлы с опасным расширением, например .php и прямой доступ к ним. Просто он немного усложняет задачу. Хотя все равно простым запросом в бд заменить не удастся, если вы говорите что в таком виде только часть аттачей - неизвестно какая часть нормальная а какая часть нет.

На самом деле это очень легко исправить вот таким простым скриптом. Файл следует положить в корень форума.

<?php

define( 'IPB_THIS_SCRIPT', 'public' );
define( 'IPS_PUBLIC_SCRIPT', 'index.php');
define( 'IPS_ENFORCE_ACCESS', true);
require_once( 'initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$registry = ipsRegistry::instance();
$registry->init();
$cache        =  $registry->cache();
$caches       =& $registry->cache()->fetchCaches(); 
$settings     =& $registry->fetchSettings(); 
$member       =& $registry->member()->fetchMemberData();
$DB           = $registry->DB();

function renameFiles( $path )
{
	global $registry, $settings, $DB;
	
	foreach( new DirectoryIterator( $path ) as $file )
	{
		if ( $file->isDot() || substr( $file->getFilename(), 0, 1 ) === '.' )
		{
			continue;
		}
		
		$fileName = $file->getFilename();
		$location = $path . '/'. $fileName;
		
		if ( $file->isDir() )
		{
			renameFiles( $location );
		}
		else
		{
			if( preg_match( '/^(.+?)\.(\w{32})$/i', $fileName, $out ) )
			{
				$DB->build( array( 'select' => '*',
								   'from'   => 'attachments',
								   'where'  => 'attach_file="'. $DB->addSlashes( $out[1] ) .'"' 
								 ) );
				$DB->execute();
				
				if( $totalRows = $DB->getTotalRows() )
				{
					while( $row = $DB->fetch() )
					{
						if( filesize( $location ) == $row['attach_filesize'] )
						{
							$_fileName = substr( $row['attach_location'], strrpos( $row['attach_location'], '/' ) + 1 );
							$_location = $path . '/'. $_fileName;
							
							rename( $location, $_location );
							
							echo "Rename file {$fileName} to {$_fileName}<br>";
							break;
						}
					}
				}
			}
		}
	}
}

renameFiles( $settings['upload_dir'] );
echo 'Done';


1

#10 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 47
  • Регистрация: 04-Декабрь 11
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Ноябрь 2015 - 21:26

Большое спасибо, часть файлов восстановил старым бекапом, часть данным скриптом!
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна