Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Архивирование и разбиение файлов на части средствами PHP (http://www.flasher.ru/forum/showthread.php?t=79713)

o-mega 14.05.2006 09:49

Архивирование и разбиение файлов на части средствами PHP
 
Здравствуйте.
У меня такая вот проблема - есть 200мб файл. Его нужно разбить на части, скажем по 50мб (и меньше) и закачать на другой хост. Но чтобы это всё делалось скриптом без скачивания пользователем.

То есть - 200мб файл на одном хосте. Разбить его нужно на другом (наверно, для начала его нужно туда залить) и затем перекачать на третий эти части архивов...

А может быть есть другой способ, до которого я не додумываюсь??? Мне самое главное понять - как можно разбивать один большой файл на множество маленьких, да так, чтобы потом можно было всё это опять воедино собрать (отправлять пакетами).

Заранее благодарен за помощь...

DimZ 14.05.2006 12:07

есть такой архиватор RAR называется он может разбить фалы на нузное кол-во частей

-MS- 14.05.2006 13:09

http://pear.php.net/search.php?q=zip...ckages&x=0&y=0
http://php.net/zip

o-mega 14.05.2006 13:51

Да, я про это дело знаю... но просто не нашёл я чёта в библиотеках PEAR и в многочисленных расширениях типа PCLZIP и т д возможности именно архивировать с разбитием архива на несколько томов. Незнаю, может я чёта пропустил.
заранее спасибо за помошч.

anufriy 14.05.2006 14:03

Да, да! Тема очень интересная. Я как раз сейчас тоже именно этим и занимаюсь.
Такое дело:
Я при помощи PEAR собрал скриптец, который по введённой в него ссылке скачивает к себе на удалённый серв файл, а потом шлёт его на мыло в виде аттача.

В чём идея:
У нас в далёкой постсоветской стране трафик пока дороговат, и файлы с таких ресурсов как рапидшара лить на выделенке обломно, а по диалапу невозможно из-зи перезвонов. Но вот почта на выделенке с халявным трафиком, и движок в ней собран на сквирел майл.

Что нужно:
1) Хотелось бы знать, каким образом можно архивировать большие файлы на удалённом сервере с разбитием по томам. Я не просто так этот вопрос задаю. Я уже много чего про это почитал, ZIP вроде как бить на тома не позволяет, а RAR библиотека неподдерживает создание архивов из-за лицензии.
2) И ещё сервак на попытку отправки даже 13 метрового файла аттачем выдаёт ошибку:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 13441019 bytes)
3) Есть конечно идея просто бить по частям файл а потом собирать... Но я не знаю что на это можно сказать.
4) Была предложена идея юзать консольный архиватор, или юзать сокеты для отправки файлов по фрагментам. Может кто подскажет готовое решение данной проблемы?

Заранее спасибо всем кто согласится над этим поломать голову

o-mega 14.05.2006 18:30

Появилась идея - вот если открыть файл в блокноте (локально), и разделить его на части, а потом - собрать? Только тут возникают проблемы - кодировка нужна... Может есть способ скриптом задать кодировку универсальную, которая бы и разбивала и собирала?

ffffff 14.05.2006 21:58

есть множество хостингов, например агава, которые предоставляют серверы большого объёма. только вот скрипты они не поддерживают... а если разбивать сначала то всё ок. в качестве архиватора можно попробовать tar или gzip

o-mega 15.05.2006 20:05

Да... мне тоже пришла мысль использовать tar, только я не знаю, как этим пользоваться... Если кто знает - расскажите об этом виде архива всё - от того, как он вообще устроен и может ли бить частями, до того, как его можно скриптом создавать... Спасибо.

Вот тут anufriy сказал что-то про сокеты... А как их можно юзать? Можно ли сокетами разбивать файл на части, а потом локально его собирать?

Спасибо.

ffffff 15.05.2006 21:14

про тар очень много написано на opennet.ru

juggy 15.05.2006 21:59

а зачем его разбивать? почему нельзя просто через FTP его отправить?


Часовой пояс GMT +4, время: 12:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.