VideMedlem sedan dec. 19998 577 inläggHej!
När jag trycker på en länk till en .doc-fil så öppnas word och dokumentet öppnas. Klickar jag på en länk till en bild, så öppnas ju den också. Min fråga är alltså hur man gör för att få en nedladdningsruta istället? Jag har testat någon komponent, men den krävde dom senare webbläsarna vilket inte går för sig.
Någon som vet hur dom gör på stora sajter? Finns det nån inbyggd funktion, som gör detta åt en?
------------------
)|(
(o o)
-oo0-(_)-0oo-----
webeye.nu
BrimbaMedlem sedan dec. 19995 875 inläggHej!
Jag har fått för mig att det är de enskilda datorerna som har associerade "extensions". Men detta går antagligen att kringå enligt ditt tidigare inlägg, vilket skulle vara kul att få reda på hur man gör.
Även jag är tacksam om någon vet om detta går och isåfall hur?
Tack!
------------------
Mvh
Patrik
aka Brimba
www.datormaklarna.se
patrik@datormaklarna.se
NnicclasMedlem sedan feb. 20001 050 inlägg Hejsan,
Ett sätt att göra det på är att modifiera den HTTP-header som skickas då du klickar på en länk/fil. (Jag vet inte om det är såhär man gör på de "stora" sajterna, men jag har inte hittat på detta själv!)
Tyvärr är jag så dålig på ASP att jag tar mitt exempel i PHP, men det är säkert en enkel match att konveratera (om man kan ASP!).
Säg att du har en sida som tar emot variablerna $path och $filename (via en query string, om du vill att filhämtningen skall ske då du trycker på en länk) som är sökväg respektive namn på filen du vill att någon skall kunna ladda hem.
Skicka först en HTTP-header som innebär att browsern "ser" att det är in fil som skall laddas hem. Skicka sedan innehållet i den fil (print-raden dumpar filen till browsern) som nerladdaren skall få.
Så här kan det se ut:
$fp = fopen($path.$filename, 'r' )
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($path.$filename));
header("Pragma: no-cache");
header("Expires: 0");
print fread($fp, filesize($path.$filename));
fclose($fp);
Jag tror att det är enkelt att skriva motsvarande i ASP!
/nicclas @ http://www.nic-sys.se
VideMedlem sedan dec. 19998 577 inläggTja!
Det var precis så jag skrev först, med hjälp av en komponent för att hämta filen binärt. Allt fungerar ju som det skall, men i dom lägre webbläsarversionerna så behandlas inte sidan lika av NS och IE, vilket inte går för sig... eller nja, finns det ingen metod så måste man ju ge efter, men det är ju önskvärt om det går att lösa på nått sätt.
Tack ändå!
------------------
)|(
(o o)
-oo0-(_)-0oo-----
webeye.nu