Witam
Stworzylem skrypt pozwalajacy ominac limity wielkosci plikow na darmowych www,
w planach mam stworzenie kolejnej wersji, ale o tym nizej.
Skrypt dzielacy duzy plik na mniejsze porcje (w zaleznosci na ile pozwala hosting):
Kod php:
<?php
set_time_limit(0);
$plik = trim($_POST['plik']);
$wielkosc = trim($_POST['wielkosc']);
if(empty($plik) or empty($wielkosc)){
echo '<form action="" method="post">
<input type="text" name="plik" value="Nazwa pliku do podzielenia" style="width: 250px;" maxlength="60" onFocus="this.value=\'\'"><br>
<input type="text" name="wielkosc" value="Na jak duze party skrypt ma podzielic plik" style="width: 300px;" maxlength="4" onFocus="this.value=\'\'">
<br><input type="submit" value="Podziel"></form>';}
else{
$uchwyt = fopen("./".$plik, "r");
for($num="0";!feof($uchwyt);$num++)
{
while(!feof($uchwyt) && $num_2 < $wielkosc){$tresc.= fread($uchwyt, 1024);$num_2++;}
$num_2 = "0";
$zapis = fopen("./out".$num.".part", "a+");
fwrite($zapis, $tresc);
$tresc = "";
fclose($zapis);
}
fclose($uchwyt);
echo "ok podzielono na czesci, utworzono ".ceil(filesize($plik) / 1024 / $wielkosc)." pliki/ow";
}
?>
Skrypt laczacy na powrot podzielony plik juz na hostingu:
Kod php:
<?php
set_time_limit(0);
$plik = trim($_POST['plik']);
if(empty($plik)){
echo '<form action="" method="post">
<input type="text" name="plik" value="Docelowa nazwa pliku wraz z rozszerzeniem" style="width: 250px;" maxlength="60" onFocus="this.value=\'\'"><br>
<br><input type="submit" value="Lacz"></form>';}
else{
for ($num = "0"; file_exists("./out".$num.".part");$num++)
{
$odczyt = fopen("./out".$num.".part", "r");
while(!feof($odczyt)){$dane.= fread($odczyt, 1024);}
$zapis = fopen("./".$plik, "a+");
fwrite($zapis, $dane);
$dane = "";
unlink("out".$num.".part");
}
echo "ok utworzono docelowy plik";
}
?>
Pierwszy skrypt przydalo by sie skompilowac, poniewaz uzywamy go u siebie, dopiero podzielone pliki wraz z drugim skryptem uploadujemy na hosting.. postaram sie to poprawic.
Jak widac, pierwszy skrypt dzieli duzy pliki na male czesci, nastepnie pliki te wysylamy na serwer wraz z drugim skryptem, po czym przy jego pomocy na powrot laczymy te kawalki w orginalny plik... wszystko dziala przykladem jest 135Mb plik na hostingu yoyo, gdzie ograniczenia pozwala na 0,5Mb pliki http://www.bigfiles.yoyo.pl/hakin.rar
Jest jeszcze jeden sposob na uzyskanie podobnego efektu, mianowicie utworzenie skryptu, ktory najpierw wysle header ze jest np bitmapa, a nastepnie przeczyta po kolei wszystkie kawalki, w ten sposob prawdopodobnie bedziemy mogli obejsc ograniczenia na rozszerzenia plikow (mp3 czy exe),
Zrealizuje drugi pomysl i zedytuje
Pozdrowienia