Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
Загрузка attachment с удаленного сервера
| 19.11.2013, 01:48 |
Простая реализация скачивания аттачментов со стороннего фтп сервера при нехватке места на 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 файл по первой ссылке на самом деле качается с совершенно другого сервера! На альтернативную ссылку внимания не обращаем, это я уже под себя делал ссылку для скачивания файлов залитых без префикса.
|
Категория: Фото приколы | Добавил: ZeN |
Просмотров: 541 | Загрузок: 0 |
| Рейтинг: 0.0/0 |
|
|