Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как уточнить размер файлов в базе данных в таблице dle_files?

Как уточнить размер файлов в базе данных в таблице dle_files?


     30.07.2017    Все вопросы » MySQL    1488

вопрос
Здравствуйте друзья!
Я добавляю очень много архивов при добавлении новости с сайта.
Поскольку архивы довольно большие по размеру, я их заранее заливаю на сервер, а потом при добавлении новости я прикрепляю пустой архив, и после загрузки меняю его с уже заранее приготовленным файлом на сервере.
Из за этого в базе данных, в таблице dle_files записывается неправильное значение size.

Как уточнить размер файлов в базе данных в таблице dle_files?


Возможно ли каким то запросом уточнить размер файлов и изменить значения?
Файлов очень много, на исправлении уходит много времени.
Заранее спасибо.

Ответа пока нет


9 комментариев

startget
Юзер

startget - 31 июля 2017 07:21 -

Друзья помогите решить вопрос пожалуйста

nowheremany
Эксперт

nowheremany - 1 августа 2017 13:25 -

Прямо так запросом не получится. Только спец хак какой-то. В стол заказов

Благодарность принимаю тут Связь

startget
Юзер

startget - 1 августа 2017 13:28 -

Вопрос уже решил, получаю размер файл не из бд, а по прямому обращению.
/engine/modules/functions.php
Найти
if (stripos ( $tpl->copy_template, "{size}" ) !== false) {
    if($row['size']) $tpl->set( '{size}', formatsize($row['size']) );
    else $tpl->set( '{size}', formatsize( @filesize( ROOT_DIR . '/uploads/files/' . $row['onserver'] ) ) );
}


Заменить на
if (stripos ( $tpl->copy_template, "{size}" ) !== false) {
    $tpl->set( '{size}', formatsize( @filesize( ROOT_DIR . '/uploads/files/' . $row['onserver'] ) ) );
}

nowheremany
Эксперт

nowheremany - 1 августа 2017 15:19 -

Можно проще в принципе - тупо очистить поле size в БД (поставить нули).
Но в данном случае постоянно будет дергать диск

Благодарность принимаю тут Связь

startget
Юзер

startget - 1 августа 2017 15:31 -

Даже просто можно ставить "0" значение, но лучше без обращение к бд ))

nowheremany
Эксперт

nowheremany - 1 августа 2017 15:37 -

Тут вы несколько не правы.
Из БД уже считалась инфа по аттачу, там уже есть данные по размеру, дополнительно запросов нет.

if($row['size']) $tpl->set( '{size}', formatsize($row['size']) );


Тут прописано - если размер не 0, то выводить данные из БД, иначе будет считываться инфа о размер файла с диска.

Благодарность принимаю тут Связь

startget
Юзер

startget - 1 августа 2017 15:43 -

Получается лучше взять инфу из бд?

nowheremany
Эксперт

nowheremany - 1 августа 2017 16:20 -

Лучше заполнить данные в БД, если у вас много посещений или проблемы с диском. Иначе можно забить )

Благодарность принимаю тут Связь

startget
Юзер

startget - 1 августа 2017 16:45 -

ок, спасибо за совет

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх