Перейти к содержимому
Русский язык для Invision Community 5

Загрузка файлов и их MIME тип...

Здравствуйте, есть вопрос :

В общем хочу сделать на форуме возможность прикреплять "повторы\файлы игры The Lord of The Rings : The Battle for Middle-Earth II" все повторы весят по 15-30 кбайт...

Но дело в том что я незнаю какой у них Mime-тип, уже многие типы перепробовал ставить, не работает....

Расширение повторов\файлов .BfME2Replay

 

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

 

Вот например здесь, сделан даже модуль какой-то для этого :

<- Ссылка показывающая модуль прикрепления реплея ->

 

А мне хотябы просто прикреплять их....

<- Ссылка показывающая прикрепление реплея просто так ->

1xczxc.jpg

 

Thx in advance :)

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

Администрирование форума не освобождает чтения документации. Банально потыкаться по админке и поискать думаю не так сложно.

  • Автор

Вообще то я уже каждый миме тип перепробовал....

unknown/unknown

 

модуль не относится к майм-типам.

реализация отдельного модуля уже другой вопрос.

для прикрепления хватит расширения и этого майм типа

  • Автор

Это я тоже ставил =))) реакция все таже, Неудачная загрузка. Вам запрещено загружать такой тип файлов.

Про доступ к загрузке\скачивание файлов можете не говорить, все доступы открыты, или есть еще какие нить ?

а что вообще пишете там?

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

 

1. Файл sources/classes/attach/class_attach.php

Найти фрагмент и заменить на следующий

 

		//-----------------------------------------
	// Populate allowed extensions
	//-----------------------------------------

	if ( is_array( $this->ipsclass->cache['attachtypes'] ) and count( $this->ipsclass->cache['attachtypes'] ) )
	{
		foreach( $this->ipsclass->cache['attachtypes'] as $idx => $data )
		{
			if ( $data['atype_post'] )
			{
				$upload->allowed_file_ext[] = strtolower($data['atype_extension']);
			}
		}
	}

 

 

2. Файл ips_kernel/class_upload.php

Найти фрагмент и заменить на следующий

 

		//-------------------------------------------------
	// Valid extension?
	//-------------------------------------------------

	if ( ! in_array( strtolower($this->file_extension), $this->allowed_file_ext ) )
	{
		$this->error_no = 2;
		return;
	}

  • Автор
а что вообще пишете там?

Воть :

Скриншот №1

 

 

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

 

1. Файл sources/classes/attach/class_attach.php

Найти фрагмент и заменить на следующий

..............

2. Файл ips_kernel/class_upload.php

Найти фрагмент и заменить на следующий

..............

После того что вы сказали заменить, начали ХОТЯБЫ прикреплятся файлы этого расширения .BfME2Raplay :huh: Хоть какой то прогресс....

Скриншот №2

 

Но после того как кликаю на файл (чтобы скачать) то появляется вот что :

Скриншот №3

Найти фрагмент и заменить на следующий
что то странный метод. Просто сделать расширение файла в strtolower и при проверке strtolower

 

__

 

а вы пробовали писать там строчными буквами в расширении для аттача? Без изменений файлов

А чего странного? Первый стртоловер исправляет ошибки ввода в табличку майм-типов. Сдуру ведь могут и большими буквами ввести. Второй прибивает вниз расширение введенного файла, чтобы сравнить его с массивом допустимых.

 

Почему не кажет - надо разбираться..

 

Посмотрите в папке, в каком виде файл сохранился?

Забавная проблемка, однако..

 

attach_ext varchar(10) - расширение не лезет в базу, получается BfME2Repla.

Надо альтерить таблицу, делать поле пошире.

 

Если в mime типах изменить jpg на Jpg -- вылезет ошибка, там такая дурная проверка расширения, что тихий ужас.. Почему-то разработчики думают, что типы всегда будут строчными.

 

Вариантов есть: принудительно ловерить расширение при загрузке, писать в mime-таблицу мелкими буквами.

  • Автор
а вы пробовали писать там строчными буквами в расширении для аттача? Без изменений файлов

Да

 

Посмотрите в папке, в каком виде файл сохранился?

1rrrrrrrrrrrr.jpg

 

 

Люди умаляю помогите решить траблу :huh:

Идем в админку, Admin-SQL toolsbox, внизу в окошке Manual Query вставляем

 

alter table ibf_attachments MODIFY attach_ext VARCHAR(18)

 

И жмем "Run Query"

(18) - потому что в таблице ibf_attachments_type именно такой размер, пусть будет однообразно.

 

 

В файле class_attach.php ищем строку

$this->ipsclass->cache['attachtypes'][ $r['atype_extension'] ] = $r;

и выше добавляем

$r['atype_extension'] = strtolower($r['atype_extension']);

 

Обновляем кеши. Загружаем файл еще раз (старая ссылка не будет работать). Должно заработать. независимо от регистра.

  • Автор

Ай яй яй яй яй, desti вы просто гений, спасибо огромное, заработало ! Спасибочки большое ! Вы меня очень выручили ! :huh:

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.