loading...

Авторизация ...

Имя пользователя :
Пароль :
я всё забыл!

ХакиЗагрузка attachment с удаленного сервера

Написал saizar, 26 сентября 2012 | 5 комментариев | рейтинг новости не нравится   +1   нравится Версия для печати
Загрузка attachment с удаленного сервера


Простая реализация скачивания аттачментов со стороннего фтп сервера при нехватке места на VDS

Расскажу Вам свою историю как я докатился до этого хака: приобрел в своем городе сайт, что стоял на винде, и в придачу винт на 2 терабайта, и посчитал, что ни дело ему под виндою мучатся, и отправил я сайт на VDS под линукс, там и настроят, и помогут :) К сожалению, виртуальные вдски не позволяют хранить такой объем данных как 2 терабайт, а покупать в аренду выделенный сервер (что стоит от 3 т / мес) мне явно ни по карману. Пришлось думать, как же организовать загрузку файлов, что были залиты аттачментом на сайт но с другого, домашнего фтп. Итак, хак будет полезен для тех у кого закончилось пространство на вдс и все файлы нужно перенести на другой, например домашний фтп.

Загружаем файлы с uploads/files себе на фтп, ничего не трогаем, префикс оставляем.

Идем в папку engine, скачиваем download.php переименовываем в download2.php и заливаем на сервер, далее открываем download.php находим
define ( 'FILE_DIR', '../uploads/files/' );
меняем на
define ( 'FILE_DIR', 'ftp://адрес_вашего_фтп/' );


Для того, чтобы новые файлы корректно заливались, идем в engine/ajax/upload.php , ищем
$('#fileurl').val( '[attachment='+$(this).data('src') +']' );
меняем на
$('#fileurl').val( '[url=http://адрес_сайта/engine/download2.php?id='+$(this).data('src') +'][img]http://адрес_сайта.ru/желаемая_картинка[/img][/url]' );
далее ищем
links[t] = '[attachment='+elmnt.value+']';
меняем на
links[t] = '[url=http://адрес_сайта.ru/engine/download2.php?id='+elmnt.value+'][img]http://адрес_сайта/желаемая_картинка[/img][/url]';


Теперь при заливке новых файлов вместо attachment будет картинка, тобишь в окне, где мы вибраем файл для вставки, вставится следующая конструкция -
ddddddddddddddddddd


[center][url=http://сайт.ru/engine/download2.php?id=10599][img]http://сайт.ru/картинка[/img][/url][/center]


которую мы и вставляем вместо аттачмента, иначе никак )

и теперь ОЧЕНЬ ВАЖНЫЙ ПУНКТ в engine/classes/download.class.php находим
fseek( $handle, $range );
и удаляем, иначе следующая ошибка
Warning: fseek(): stream does not support seeking in /var/www/pg/data/www/softorion.ru/engine/classes/download.class.php on line 103
которая записывается в каждый файл после закачки, и они становятся нерабочие! Это решение помогло. Все файлы как с удаленного фтп так и новые загруженные на VDS заливаются и открываются корректно!

Загрузку новых файлов на свой фтп вы можете организовать другими методами, до этого еще не додумался ) Есть модуль для этого ftp files но его установить я так и не смог, разработчик не отвечает.

Вы можете дорабатывать модуль, сообщайте пожалуйста мне если вы знаете как то или иное в коде сделать лучше, я не программист и мог сделать что то не совсем верно. Хотя с другой стороны все отлично работает! Версия DLE 9.6

Пример работы вышеописанного хака Вы можете увидеть на нашем софт портале http://softorion.ru/

только ни в самых первых новостях, а например тут http://softorion.ru/index.php?newsid=11988 файл по первой ссылке на самом деле качается с совершенно другого сервера! На альтернативную ссылку внимания не обращаем, это я уже под себя делал ссылку для скачивания файлов залитых без префикса.


Отблагодарили: ha131

Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал bobkli, 3 ноября 2012 в 12:00 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 13, Пользователи
Карма:
а как можно сделать что бы можно было залить на несколько ФТП и HTTP
а то второй день вожусь не как не могу сделать angry_2

Написал maxic, 6 декабря 2012 в 20:37 плохой комментарий   0   хороший комментарий
Новостей: 7, комментариев: 115, Пользователи
Карма:
Перезаливка файлов на фтп - задание на крон, перезаливать все файлы из папки uploads/files/ . (Можно на php - просто подключиться к фтп серверу, получить список файлов в директории uploads/files/ и по очереди ftp_puts их на фтп)

Написал aurellochkka, 6 апреля 2013 в 01:09 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 11, Пользователи
Карма:
Не глюкает?

Написал bellochkka, 12 апреля 2013 в 01:19 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 10, Пользователи
Карма:
Да вроде не глючит!

Написал matildda, 16 мая 2013 в 01:08 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 20, Пользователи
Карма:
Решит кучу проблем!

Информация



Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Анализ Тиц и PR сайта

[removed][removed] [removed] (adsbygoogle = window.adsbygoogle || []).push({}); [removed]