Byt ut:
$fp = @implode ('', file ($link));
if (strlen($fp)>5)
mot
if (@fopen($link, "r"))
Förresten, hjälpte jag dig med nr 2? Den ser lite knasig ut, en header() efter echo.
6 svar · 258 visningar · startad av Niklasson
Har ett downloadscript med felkontroll, men undrar lite om det är den smartaste lösningen.
Jag vill kunna kolla externa URL:s utan att påverka bandbredden för webbhotellet, eftersom jag har många downloads per dag. Naturligtvis så snabbt och säkert som möjligt.
Förut använde jag helt enkelt en fopen, men dels är det segt och inte alltid det fungerar. Tog hjälp av stevenet via ICQ och vi körde så här:
<?php
if (@fopen($link, "r"))
{
$filnamn = eregi_replace(".*/(.*)\.([a-zA-Z]{1,4})","\\1.\\2",$link);
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".$filnamn);
readfile($link);
}
else
{
fel ("Länken är felaktig!");
}
?>
Detta tog tydligen mycket bandbredd, och vi ändrade till detta:
<?php
$fp = @implode ('', file ($link));
if (strlen($fp)>5)
{
$filnamn = eregi_replace(".*/(.*)\.([a-zA-Z]{1,4})","\\1.\\2",$link);
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".$filnamn);
echo $fp;
}
else
{
fel ("Länken är felaktig!");
}
?>
Detta drog tydligen också en del bb, så nu kör jag:
<?php
$fp = @implode ('', file ($link));
if (strlen($fp)>5)
{
header ("Location: $link");
exit;
}
else
{
fel ("Länken är felaktig!");
}
Du som orkat läsa ända hit ner får gärna komma med en bättre lösning ;) :P
Byt ut:
$fp = @implode ('', file ($link));
if (strlen($fp)>5)
mot
if (@fopen($link, "r"))
Förresten, hjälpte jag dig med nr 2? Den ser lite knasig ut, en header() efter echo.
hmm, nej den raden skall inte vara med.. Hade kommenterat bort massa olika rader så jag har nog klippt lite fel där ;)
(redigerade bort det nu)
fopen tar mig tillbaka till början ;) gillade aldrig det - men det kanske är den bästa lösningen? Det äter ju också lite bandbredd...
I den första kör du 2 anslutningar. I den tredje bara en, borde ju fungera bättre.
Okej, men det borde finnas ett sätt att kontrollera om filen existerar utan att behöva läsa in hela filen.. :(
Niklasson skrev:
Okej, men det borde finnas ett sätt att kontrollera om filen existerar utan att behöva läsa in hela filen.. :(
Externa URL:s var det... ;)