ugrás a tartalomhoz

Letöltés másik webhelyről, úgy, hogy ne lássa honnan tölti

Anonymous · 2005. Aug. 22. (H), 16.04
Sziasztok!

Meg tudná valaki mondani, hogy mit csinálok rosszul a következő kódban:

<?
$fajl = "http://valami.hu/valami.exe";
$type="application/octet-stream";

if (file_exists($file)) {
header("Content-type: $_REQUEST[type]");
header("Content-Disposition: attachment; filename=$file");
readfile($file);

} else {
print "A fájl nem található!";

}
?>

A gond az, hogy így nem találja a fájlt. Ha nem másik tárhelyen lévő cuccot akarok így letölteni, akkor nincs probléma (pl. $fajl = "valami.exe"; )...
Azért lenne szükség erre, mert a cuccaim nem egy tárhelyen vannak és nem szeretném, hogy aki letölti, lássa azt, hogy máshonnan tölti.
 
1

file_exists korlátolt

Hojtsy Gábor · 2005. Aug. 22. (H), 16.29
Nos, a dokumentációban ez van:
Tip: As of PHP 5.0.0 this function can also be used with some URL wrappers. Refer to Appendix M for a listing of which wrappers support stat() family of functionality.
Ebből inverz logikával arra következtethetsz, hogy a file_exists() nem megy távoli webcímekre PHP 5.0.0 előtt.
2

$fajl - $file

fberci · 2005. Aug. 22. (H), 17.25
Az elején a $fajl változót deklaráltad, míg később a $file-t használtad.

Üdv.: fberci
3

:))))))

Anonymous · 2005. Aug. 22. (H), 19.28
De ha még csak azt írtam volna el...no, mindegy.

Végül találtam egy ilyet:

$fileurl="http://valami.hu/valami.exe";

header('Content-Description: File Transfer');
header("Content-Type: application/force-download");
header('Content-disposition: attachment; filename='.basename($fileurl));
readfile("$fileurl");
Ez így jó is lenne, csak valahogyan hozzá kellene hegeszteni a fájl méretet. A filesize() itt nem jó...
4

Aztán mégsem jó...

Anonymous · 2005. Aug. 22. (H), 19.55
csak localhoston....

Warning: readfile(): URL file-access is disabled in the server configuration


Ha jól sejtem, akkor ez ennyi volt...

Nem lehet valahogyan mégis megoldani?
5

volt már

Hojtsy Gábor · 2005. Aug. 22. (H), 19.59
Volt már sokszor itt is, például legutóbb Távoli fájl megnyitás ingyenes tárhelyeken?. Neked persze a CURL lehet megoldás, vagy fsockopen(). Lásd ezek dokumentációját.
6

Na de egy fizetős tárhelyen...

Anonymous · 2005. Aug. 22. (H), 20.08
Azt hiszem legközelebb jobban utánajárok hogy hol is bérlek tárhelyet...
7

<Nincs cím>

Anonymous · 2005. Aug. 23. (K), 19.12
Az a vicc, hogy még ez sem megy a tárhelyemen:

//the site or URL to get
$ch = curl_init("http://www.google.com/");
//set the options for the transfer
curl_setopt($ch, CURLOPT_HEADER, 0);
//execute the session
curl_exec($ch);
//free up system resources !!IMPORTANT
curl_close($ch);
Szóval én már nem igazán tudom, hogy mit is csináljak. A lényeg az lenne, hogy a (fizetős) tárhelyen lévő oldalamról el tudjak érni ingyenes tárhelyeken lévő cuccokat, úgy, hogy ne látszódjon, hogy nem a saját tárhelyemen van.

Ha bárki tud segíteni, kérem tegye meg...
8

<Nincs cím>

Anonymous · 2005. Aug. 23. (K), 19.14
Ja, még annyi, hogy 302-es hibát ír ki és a tárhelyen engedélyezve van a CURL.
12

302-es (hiba?)

Hojtsy Gábor · 2005. Aug. 23. (K), 21.35
Nos, a 302-es azt jelenti, hogy kapsz egy másik webcímet, amit használhatsz, azon kell folytatni a lekérdezést. A CURLOPT_FOLLOWLOCATION való arra, hogy megmondd a CURL-nek, hogy kövesse automatikusan az átirányításokat, és akkor nem kell neked dolgozni vele.
9

Általában ezt tiltják

Jano · 2005. Aug. 23. (K), 19.58
Az ingyenes tárhelyek ezt a fajta felhasználást tiltják! Tehát csak úgy lehet náluk tárolni cuccot, hogy az oldal is náluk van és így megjelenhet a reklám hely is amiből megélnek!
10

Tudom

Anonymous · 2005. Aug. 23. (K), 20.03
Viszont megoldható, hogy ne tűnjön fel nekik ez az 'apróság', csak hát gyakorlatilag nem tudom kivitelezni. Ehhez kellene egy kis segítség...
11

Védekeznek

Jano · 2005. Aug. 23. (K), 21.34
Lehet hogy IP szűréssel védekeznek. Simán előfordulhat, hogy a te szervered IP-jét bannolják.
13

Hát lehet

Anonymous · 2005. Aug. 23. (K), 21.43
Mondjuk ez a megoldás csak addig lett volna, míg át nem költöztetem a cuccaimat normális tárhelyre (2-3 hónap). Viszont a problémát akkor így is meg kellene oldanom, mert akkor is hozzá kell férni valahogyan a másik szerveren lévő fájlokhoz...