Oldal: 7 / 13

Re: PHP segély

HozzászólásElküldve: 2010.08.17. 10:44
Szerző: Laczkó
Kedves fórumtársak!

PHP-scriptes letöltéssel van gondom. Itt a topic első oldalain olvastam, hogy van valami 8 MB-os fájlméret korlát, de én akárhányszor végigolvastam a szabályzatott, sehol nem találtam fáljméret korlátozásra semmilyen utalást, és amikor a "jobb gomb->cél mentése másként" helyett elkezdtem PHP-sripteket használni, nem is volt semmi gond, kipróbáltam, és gond nélkül lejött egy közel 180 MB-os fájl is. Pár hete azonban újabb nagyobbacska (kb. 40 MB) fájlt akartam közzé tenni, de amikor kipróbáltam, 17,3 MB-nál abbahagyta a letöltést. Ezután tapasztaltam a legérdekesebb jelenséget: leellenőriztem, hogy a korábban feltöltött fájlok működnek-e még, és mindnél azt tapasztaltam, hogy olyan 20 MB-tól a teljes fájlig valamennyit letölt belőlük (valahányszor megpróbáltam, mindig különböző méretig jutott el), látszólag teljesen véletlenszerű, hogy mikor mennyit, de a legutóbb felrakott fájlból továbbra is minden alkalommal pontosan 17,3 MB jön le. Érti ezt valaki?

Re: PHP segély

HozzászólásElküldve: 2010.08.17. 18:19
Szerző: csigi
Szerintem kevered a dolgokat :lol: A fájlméret korlátozás feltöltésnél van! Azaz ha van egy formod ami file feltöltéses ott max 8 Mb-ot tudsz egyszerre feltölteni! Most a letöltés az már kérdéses, hogy hogyan is töltöd le, simán böngészőben beírod a direkt elérhetőségét és úgy töltöd vagy egy php fájl segítségével amiben "force download" megoldás van, ha a második akkor több mint valószínű hogy rosszul van beállítva a "force download" résznél a filesize vagy egyáltalán nincs is beállítva ;) Ha az első feltételezés akkor valószínű letöltés közben időtúllépés van!

Re: PHP segély

HozzászólásElküldve: 2010.08.19. 08:43
Szerző: Laczkó
Ha direkt eléréssel töltöm, akkor nincs semmi probléma, csak azt elég gagyi megoldásnak tartom, hogy kiírom a honlapra, hogy jobb gomb a linkre és cél mentése, ezért szeretném PHP kóddal megoldani a dolgot. Sajnos azonban ehhez egyáltalán nem értek, így internetről szedtem le néhány kódot, és bogarásztam ki, hogy mi micsoda, s ebből született meg a következő kód:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\""."vacduka.aac"."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize(vacduka.aac));
readfile("vacduka.aac");
exit();
Ha jól értelmezem, itt a fájlméretet magából a letöltendő fájlból szedi ki, ami ha valami hiba folytán rosszul is lenne beleírva, akkor is mindig ugyan annyit kéne letöltenie a fájlból, ha nem is az egészet.

Re: PHP segély

HozzászólásElküldve: 2010.08.19. 11:23
Szerző: csigi
Hát igen ez a force download amit mondtam, a hiba pedig az elérési útnál van a filesize résznél, mindig úgy kell beírni a fájl elérési útját hogy a gyökérkönyvtártól és a letöltés vezérlő php-tól viszonyítasz, tehát ha pl van egy fajlok mappa és abban van a fajl.txt akkor az elérési út fajlok/fajl.txt , de nem mindig fogadja el a szerver ezért lehet hogy /fajlok/fajl.txt vagy a harmadik verzió ./fajlok/fajl.txt (Ha visszafelé szeretnél menni akkor pedig ../ kell ezzel visszaugrasz 1 mappát)

Re: PHP segély

HozzászólásElküldve: 2010.08.22. 13:46
Szerző: adamos42
A legtöbb probléma amúgy a helytelen elérési út megadásból szokott történni :D. Részben megint leszek egy darabig csak jelenleg tönkre ment a gépem :(

Amúgy én azt szoktam, hogy definiálom a helyeket majd azokat hívom meg :D

Kód: Egész kijelölése
define("www" , "http://akarmi.valami.hu/");
define("files" , www."downloads/" );


Ha nem rontottam el akkor így néz ki :D

Re: PHP segély

HozzászólásElküldve: 2010.08.24. 21:50
Szerző: Laczkó
Sajnos nem akar működni. Mind a PHP kód, mind a letöltendő fájl a gyökérkönyvtárban van, de azért kipróbáltam, hogy beírok elé egy "/" jelet, vagy "./"-t, de semmi változás. Bár igazából nem is értem, hogy ez miért segíthetne, hiszen a fájlt eddig is megtalálta, amit letöltött, azt lejátszottam, és az volt, aminek lennie kellett, csak éppen a vége hiányzott, ez pedig arra utal, hogy nem az elérési úttal van a gond.

Re: PHP segély

HozzászólásElküldve: 2010.08.25. 10:23
Szerző: csigi
Én nem is magára a fájl letöltés részére gondoltam, hanem a filesize résznél rossz az elérési út, ezért nem tudja megállapítani mennyi a fájl mérete és azért marad el a vége is!

Re: PHP segély

HozzászólásElküldve: 2010.08.26. 06:29
Szerző: fride
Esetleg így: filesize('vacduka.aac') ?

De ha nincs megadva a Content-Length, az se tragédia, csak úgy a böngésző nem tudja meg a fájl méretét, és azt sem tudja kijelezni, hogy éppen hol tart a letöltés.

Re: PHP segély

HozzászólásElküldve: 2010.08.26. 10:00
Szerző: csigi
fride jól mondja, ha nincs meg a méret akkor a böngésző letöltés csak futkozik és nem tudja hol a vége!

Re: PHP segély

HozzászólásElküldve: 2010.08.26. 15:36
Szerző: fride
Viszont nem értem, hogy miért nem jó a direkt elérés egy sima linkkel.
Ha látogató rákattan a linkre, a megadott fájl letöltődik, nem kell semmi "jobb gomb és cél mentése".

Csak úgy, mindenféle cél nélkül PHP-val csinálni fölösleges.