• 15 odgovora
  • 5.470 pregleda
Skripta za dijeljenje fajla 10.06.2006. u 14:42 · pre 248 meseci #1
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
Re: Skripta za dijeljenje fajla 10.06.2006. u 15:10 · pre 248 meseci #2
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...
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Skripta za dijeljenje fajla 10.06.2006. u 16:09 · pre 248 meseci #3
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.
Re: Skripta za dijeljenje fajla 10.06.2006. u 19:00 · pre 248 meseci #5
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
Re: Skripta za dijeljenje fajla 10.06.2006. u 20:26 · pre 248 meseci #6
Niko? :(

Izgleda da cu ih morati spajati preko dos prompta ipak.
Re: Skripta za dijeljenje fajla 10.06.2006. u 21:03 · pre 248 meseci #8
Nasao sam tu funkciju na ovom forumu, ali koliko sam shvatio ona je samo za kompresiju ne za dijeljenje. Ispravi me ako grijesim
Re: Skripta za dijeljenje fajla 10.06.2006. u 22:35 · pre 248 meseci #9
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 ;)
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Skripta za dijeljenje fajla 10.06.2006. u 22:39 · pre 248 meseci #10
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.
Re: Skripta za dijeljenje fajla 11.06.2006. u 06:38 · pre 247 meseci #11
@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]
Re: Skripta za dijeljenje fajla 11.06.2006. u 20:30 · pre 247 meseci #12
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).....
Potpis
there's no place like 127.0.0.1
Re: Skripta za dijeljenje fajla 11.06.2006. u 20:49 · pre 247 meseci #13
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 :(
Re: Skripta za dijeljenje fajla 12.06.2006. u 07:19 · pre 247 meseci #14
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 :)
Re: Skripta za dijeljenje fajla 13.06.2006. u 14:40 · pre 247 meseci #15
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
Re: Skripta za dijeljenje fajla 14.06.2006. u 14:30 · pre 247 meseci #16
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
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme