Med lite PHP-trixande går det. Ett annat sätt är att tvinga användaren, även om det är fult...
<a href="bild.png" onclick="alert('Du måste högerklicka blablabla'); return false;">...</a>
12 svar · 682 visningar · startad av bassebhu
Hej!
Om man bara länkar till en bild så visas ju oftast bilden direkt i läsaren. Finns det något sätt så att det kommer upp en alert med "spara filen till disk" när man klickar på en länk till tex en bildfil?
Taxi!
Med lite PHP-trixande går det. Ett annat sätt är att tvinga användaren, även om det är fult...
<a href="bild.png" onclick="alert('Du måste högerklicka blablabla'); return false;">...</a>
nitro2k01 skrev:
Med lite PHP-trixande går det. Ett annat sätt är att tvinga användaren, även om det är fult...
<a href="bild.png" onclick="alert('Du måste högerklicka blablabla'); return false;">...</a>
Hur gör man det med php? Det vore ju ännu bättre. Nu när du säger det kom jag på att det väl är så man brukar göra.
Ber modertorn att flytta tråden till php... Tackar för svar.
Den här tråden är skrämmande lik http://www.webforum.nu/showthread.php?t=1123 :)
Fast jag fick inga php-förslag i den tråden ;)
header('Content-Disposition: attachment');
Eller .htaccess
<FilesMatch "\.(pdf)$">
Header set Content-Disposition attachment
</FilesMatch>
:)
Tråden flyttas till PHP-forumet.
phpfilen som länken går till:
<?php
// Hämta bildnamn på valfritt sätt
$filnamn = "nånting.jpg";
header('Content-type: application/octet-stream');
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="$filnamn"');
exit;
?>
Pedda skrev:
header('Content-type: application/octet-stream'); header('Content-type: image/jpeg');
Vad är syftet med den första raden ovan?
Första raden är jag inte säker på men den andra är information till fönstret som öppnas. Se bifogade bilden.
Så här ska koden se ut om allt ska synas:
<?php
$filnamn = "avatar.jpg";
header('Content-type: application/octet-stream');
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="'.$filnamn.'"');
header('Content-Size: '.filesize($filnamn));
readfile($filnamn);
exit;
?>
(Rättade även till ett fel jag hade gjort i koden).
Jag har nästan samma problem. Jag vill skapa en textfil. Fylla den med lite text och sedan erbjuda användaren en öppna/spara ruta där han kan spara textfilen.
Jag testade därför sisåhär:
<?php
$content = "hello world!";
$file = fopen("/tmp/customer.txt", "w");
fwrite($file, $content);
fclose($file);
header('Content-type: application/octet-stream');
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="/tmp/customer.txt"');
readfile("/tmp/customer.txt");
?>
Men den skriver ändå ut "hello world" på skärmen. Vad göra?
Varför återupplivade du denna tråd istället för att svara i din egen? Lösningen till ditt problem är att du inte ska ha med hela sökvägen till filen i header-kommandot.
header('Content-Disposition: attachment; filename="customer.txt"');
Detta kommando talar bara om vad webbläsaren uppfattar filnamnet som. Du kan t ex skriva foo.txt även om filen heter customer.txt på servern.
tja, Själv tycker jag det är bättre att forsätta diskussionen i en redan befintlig tråd än att skapa en ny. Men jag kan ha fel..
Jag tackar och bockar för hjälpen! Det fungerar!