[ 3125 @ 10.06.2006. 14:42 ] @
| Postoji li skripta za dijeljenje fajla? Nesto kao winrar na windowsima (kompresija je nepotrebna, vazno mi je da se fajl podijeli).
Naprimjer imam fajl ime.iso od 700MB i hocu da dobijem 7 fajlova po 100MB da se lako mogu spojiti nakon downloada. Server je na linuxu i nemam shell access.
Napominjem da sam prevrnuo google i hotscripts |
[ Nemanja Avramović @ 10.06.2006. 15:10 ] @
Kad binarni fajl pretvoris u ASCII (string, sa base64 enkodovanjem) možeš da mu radiš šta hoćeš (pa i da ga deliš). Samo što ne znam koliko bi to bilo korisno za ogromne fajlove kao što su (najčešće) ISO fajlovi. I da, b64 enkodovani fajl je ~30% veći od normalnog...
[ 3125 @ 10.06.2006. 16:09 ] @
Mogu ja njega tako da podijelim, ali onda osobe koje to downloadaju ce morati spajati preko hex editora ili nesto slicno (kad se radi o fajlovima preko GB jako dosadan posao). Znam da se moze i spojiti preko DOS-a sa copy komandom ali necu to ja trebati raditi nego neki laici pa mi je potrebno nesto lakse, sto bi po mogucnosti mogao spojiti sa total commanderom ili winrarom.
[ Nemanja Avramović @ 10.06.2006. 17:57 ] @
Eh pa ne znam 
Napravi program koji ce da spaja downloadovane fajlove 
[ 3125 @ 10.06.2006. 19:00 ] @
Mogu ja to napraviti, to je jedna dos komanda, znaci par redova u c++, ali fazon je sto kad se spoji to ce biti fajlovi od par GB, a ovako se samo nadovezuju jedan na drugi pa ce trajati vjecnost. Znas i sam koliko treba da paste-as 500MB u hex editoru. Treba triput manje vremena da se toliki file spoji winrarom
[ 3125 @ 10.06.2006. 20:26 ] @
Niko? :(
Izgleda da cu ih morati spajati preko dos prompta ipak.
[ SmilieBG @ 10.06.2006. 20:59 ] @
Postoji zip funkcija u PHP-u, ali nisam siguran moze li da odradi to sto ti treba...
Poz,
Sale
[ 3125 @ 10.06.2006. 21:03 ] @
Nasao sam tu funkciju na ovom forumu, ali koliko sam shvatio ona je samo za kompresiju ne za dijeljenje. Ispravi me ako grijesim
[ Nemanja Avramović @ 10.06.2006. 22:35 ] @
Skoro svaki od ZIP-ova koje sam probao (a koristim ih od kad imam komp, od '94.) je imao opciju da pravi split arhive (ili je to bio RAR? davno je bilo... uostalom, sad nije '94. nego '06.) ali ipak ne znam da li zip na Linuxu (ako ti je hosting na Linuxu) može to da odradi. Probaj 
[ Asix @ 10.06.2006. 22:39 ] @
Ova dva linka bi mogla da ti daju ideju:
http://www.php.net/manual/en/ref.zip.php i
http://www.php.net/manual/en/ref.zlib.php
Ako obezbedis shell access, onda mozes direktno iz PHP skripte da saljes komande za spajanje/rastavljanje fajlova, bas kao direktno iz shell - a. Vise o tome mozes da nadjes ovde:
http://www.php.net/manual/en/function.shell-exec.php kao i
http://www.php.net/manual/en/function.escapeshellarg.php cisto da imas u vidu.
E sad ako ti ne treba kompresija onda prva dva linka mozes da ignorises, samo je glavna fora da obezbedis shell access, jer bez toga ces tesko bilo sta da uradis. Ispravite me ako gresim.
[ 3125 @ 11.06.2006. 06:38 ] @
@JaHvram zip ne podrzava dijeljenje fajlova, samo rar to podrzava. Hosting je na linuxu ali nemam shell access i nema teorije da ga dobijem kao sto sam vec rekao u prvom postu
@Asix Ne treba mi kompresija, samo mi treba da od fajla od GB dobijem 10 fajlova od 100MB radi lakseg manipulisanja ostalim korisnicima, ali kao sto rekoh...shell...
[Ovu poruku je menjao 3125 dana 11.06.2006. u 11:11 GMT+1]
[ w3bl0rd @ 11.06.2006. 20:30 ] @
a ne bi li radilo da otvoriš fajl sa rb pročitaš ga i poslije samo dio fajla spremiš u jedan fajl drugi u drugi dio npr
$fp=fopen("fajl.ext","rb");
$content=fread($fp,filesize("fajl.txt");
fclose($fp);
$fp=fopen("dio1.ext","wb");
fwrite=substring(0,100);
fclose($fp);
$fp=fopen("dio2.ext","wb");
fwrite=substring(100,200);
itd... to se može složiti i u petlju mislim da bi trebalo raditi ali nisam siguran...
a za spajanje je obrnuti postupak čitaš fajl po fajl i onda samo uradiš fwrite($f1.$f2).....
[ 3125 @ 11.06.2006. 20:49 ] @
Problem je sto se ne spaja na serveru, nego na windowsima, a sa spajanje fajlova kojim baratam ce na windowsima trajati par sati ukoliko ne budu u nekom specificnom formatu kojeg win programi mogu spajati preko algoritma (.rar .001 .r01 .z01 itd.), ali izgleda da cu morati tako :(
[ 3125 @ 12.06.2006. 07:19 ] @
Nadjoh nesto. Valjda ce raditi
http://www.phpclasses.org/browse/package/1900.html
This class provides a solution that not only can try to compress large files generating .ZIP archives, but also can split them into several pieces that can be downloaded in parallel to take the most of the available bandwidth.
Zvuci odlicno :)
[ 3125 @ 13.06.2006. 14:40 ] @
Opet ja sa problemom :(
Ova klasa koju sam nasao naime radi sa malim fajlovima (da 200MB) a ne radi sa vecim (ni na localhostu ni na serveru)
Jedino sto mi pada napamet jeste da je do radne memorije jer klasa citav fajl ucita u varijablu.
Ima li iko kakvu ideju da ovo zaobidjem?
Evo skripte
Code:
<?
/*** POSTAVKE ***/
$file = 'GrabIt160b.exe'; // File u files/ folderu
$zip_name = 'splitted.zip'; // Osnova imena zip dijelova
$part_size = 104800; // Velicina dijela
$path = 'files/'; // Path do files/ folder (obavezno / na kraju);
set_time_limit(0);
include("class.easyzip.php");
$z = new EasyZIP;
$z -> folder = $path;
$z -> addFile(urldecode($path.$file));
$z -> splitFile($zip_name,$part_size);
?>
Hvala unaprijed
http://rapidshare.de/files/22954484/class.easyzip.php.html
Evo klase ako je kome mrsko da se registruje
[ Asix @ 14.06.2006. 14:30 ] @
Verovatno je problem u radnoj memoriji, jer, kao sto si rekao, klasa smesta ceo fajl u RAM (sto je, na kraju krajeva, i logicno). Ako stvarno ne mozes da obezbedis shell, onda ces morati da probas samo preko ugradjenih PHP funkcija za manipulaciju fajlova da razdvajas i spajas fajlove, ali to je veoma komplikovana varijanta, ali nije i neostvariva. Mozda ti sledeci link da neku ideju:
http://www.theukwebdesigncompa...ticles/article.php?article=165
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|