/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Automatisk download ved tryk på link
Fra : -USH-


Dato : 11-12-06 21:04

Hej gruppe

Jeg vil gerne skrive et link, så man automatisk downloader et billede i
stedet for at åbne billedet i browseren. Hvordan gør man det?

--
Venlig hilsen
-Ulrik-



 
 
Kim Ludvigsen (11-12-2006)
Kommentar
Fra : Kim Ludvigsen


Dato : 11-12-06 21:27

Den 11-12-06 21.04 skrev -USH- følgende:

> Jeg vil gerne skrive et link, så man automatisk downloader et billede i
> stedet for at åbne billedet i browseren. Hvordan gør man det?

Du kan fx gemme det i et format, som normalt ikke kan vises i browseren,
fx et billedformat som tif, eller du kan pakke det i zip-formatet.

--
Mvh. Kim Ludvigsen
Tema med alt hvad det er nødvendigt at vide om nyhedsgrupperne.
http://kimludvigsen.dk

-USH- (11-12-2006)
Kommentar
Fra : -USH-


Dato : 11-12-06 21:39

Kim Ludvigsen skrev:
> Den 11-12-06 21.04 skrev -USH- følgende:
>
>> Jeg vil gerne skrive et link, så man automatisk downloader et
>> billede i stedet for at åbne billedet i browseren. Hvordan gør man
>> det?
>
> Du kan fx gemme det i et format, som normalt ikke kan vises i
> browseren, fx et billedformat som tif, eller du kan pakke det i
> zip-formatet.

Findes der virkelig ikke en funktion, kode eller kommando man kan skrive ind
et sted for at det sker automatisk? Hm. Tror jeg laver en forklaring med at
højreklikke i stedet. Tak for svar.

--
Venlig hilsen
-Ulrik-



Bertel Lund Hansen (11-12-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 11-12-06 21:48

-USH- skrev:

> Jeg vil gerne skrive et link, så man automatisk downloader et billede i
> stedet for at åbne billedet i browseren. Hvordan gør man det?

Det gør du ved at overtage kontrollen med alle brugersystemer i
hele verden, og så stiller du dem til ikke at åbne billeder i
browseren.

Hvis ikke du har magt til det, må du finde dig i at vi hver især
selv bestemmer hvordan vores system skal fungere og derfor også
hvilke filer vores browser skal åbne.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Mikkel Z. Herold (11-12-2006)
Kommentar
Fra : Mikkel Z. Herold


Dato : 11-12-06 22:29

On 11-12-2006 21:47 Bertel Lund Hansen wrote:
> Det gør du ved at overtage kontrollen med alle brugersystemer i
> hele verden, og så stiller du dem til ikke at åbne billeder i
> browseren.

Forkert! Du kan sagtens bruge en serverside-teknologi som f.eks. PHP til
at servere billedet med headeren "content-disposition: attachment",
hvorefter browseren skal give brugeren valget mellem at gemme eller åbne
billedet.

> Hvis ikke du har magt til det, må du finde dig i at vi hver især
> selv bestemmer hvordan vores system skal fungere og derfor også
> hvilke filer vores browser skal åbne.

Du kan sagtens bede browseren om ikke at vise en bestemt fil, men i
stedet spørge om den skal downloades. Prøv selv her:
http://www.mzh.dk/testsider/download_billede.php. Koden kan ses på
http://www.mzh.dk/testsider/download_billede.phps

Koden kan nemt gøres dynamisk, så den i stedet for at downloade et fast
billede, downloader et billede, der angives i en variabel, f.eks. <a
href="download_billede.php?billednavn=blomster.jpg">Download
blomsterbillede</a> - så skal første linje i scriptet blot være $billede
= $_GET['billednavn'];

Bemærk, at der bør laves noget validering af variablen, før den sendes
videre i scriptet - det er ikke gjort ovenfor.

Jeg sætter FUT til PHP-gruppen dk.edb.internet.webdesign.serverside.php,
dvs. svar på dette indlæg kan læses i den gruppe.

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

www.mzh.dk

Lasse Reichstein Nie~ (11-12-2006)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 11-12-06 23:10

"Mikkel Z. Herold" <mikkel@[remove_this]mzh.dk> writes:

> Forkert! Du kan sagtens bruge en serverside-teknologi som f.eks. PHP
> til at servere billedet med headeren "content-disposition:
> attachment", hvorefter browseren skal give brugeren valget mellem at
> gemme eller åbne billedet.

Det ville være fint, hvis det virkede. Det er dog ikke en del af
HTTP-standarden, men blot noget som nogle implementationer har tilføjet.
<URL:http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.5>
Der er browsere der ikke forstår den header (fx Opera).

En anden, og knap så pæn, metode er at sætte Content-Type til
application/octet-stream, så browseren ikke ved at der er tale
om et billede. Det snyder på den anden side ikke browsere der
lader extension bestemme typen (fy til dem).


> Jeg sætter FUT til PHP-gruppen
> dk.edb.internet.webdesign.serverside.php, dvs. svar på dette indlæg
> kan læses i den gruppe.

Jeg holder den her, da jeg ikke snakker PHP :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Mikkel Z. Herold (12-12-2006)
Kommentar
Fra : Mikkel Z. Herold


Dato : 12-12-06 13:42

On 11-12-2006 23:10 Lasse Reichstein Nielsen wrote:
> Det ville være fint, hvis det virkede. Det er dog ikke en del af
> HTTP-standarden, men blot noget som nogle implementationer har tilføjet.
> <URL:http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.5>
> Der er browsere der ikke forstår den header (fx Opera).

Min Opera (9.02) forstår det fint. Og har man endelig en browser, der
ikke forstår det, så sker der vel ikke andet, end at den viser billedet,
eller hvad? Dermed er det stadigvæk en brugbar løsning.

> En anden, og knap så pæn, metode er at sætte Content-Type til
> application/octet-stream, så browseren ikke ved at der er tale
> om et billede. Det snyder på den anden side ikke browsere der
> lader extension bestemme typen (fy til dem).

Også en mulighed, men som du siger ikke så pænt.

Alternativt kan man vel også bruge "Content-Type:
application/force-download", men jeg ved ikke, hvordan det er
understøttet - har lavet en test på
http://www.mzh.dk/testsider/download_billede2.php (med koden på
http://www.mzh.dk/testsider/download_billede2.phps).

> Jeg holder den her, da jeg ikke snakker PHP :)

Fint nok

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

www.mzh.dk

Thrane (12-12-2006)
Kommentar
Fra : Thrane


Dato : 12-12-06 08:19


"-USH-" <tidsrejseSLET@yahoo.dk> wrote in message
news:457db9b8$0$49203$14726298@news.sunsite.dk...
> Hej gruppe
>
> Jeg vil gerne skrive et link, så man automatisk downloader et billede i
> stedet for at åbne billedet i browseren. Hvordan gør man det?
>
> --
> Venlig hilsen
> -Ulrik-
>
>

Har du mulighed for .asp?
For så ligger jeg inde med noget kode...

Ellers søg på "force download" på Google...

/Thrane



Migger (12-12-2006)
Kommentar
Fra : Migger


Dato : 12-12-06 14:10

> Har du mulighed for .asp?
> For så ligger jeg inde med noget kode...
Jeg vil da egentlig gerne se det kode



Thrane (14-12-2006)
Kommentar
Fra : Thrane


Dato : 14-12-06 11:41


"Migger" <usenet@migger.dk> wrote in message
news:457eaa45$0$49198$14726298@news.sunsite.dk...

> Jeg vil da egentlig gerne se det kode
>



Man laver en fil med nedenstående kode og kalder den getfile.asp
-----------------------------
<%
' Get file details
Filename = server.HTMLEncode(Trim(cstr("" & request("Filename"))))

' create stream object
on error resume next
Set GetFile = Server.CreateObject("ADODB.Stream")
GetFile.Type = 1
GetFile.Open
GetFile.LoadFromFile Server.Mappath("\downloads\"&Filename)
If Err.number = 0 Then
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename="&Filename
Response.AddHeader "Content-Transfer-Encoding","binary"
Response.BinaryWrite GetFile.Read
GetFile.Close
Set GetFile = Nothing
Response.End()
Else '< Error
GetFile.Close
Set GetFile = Nothing
Response.Redirect("/default.asp?p=error")
End If
%>
-----------------------------

Linket til den fil der skal "tvinges" til downlaod ser således ud:

<a
href="getFile.asp?Filename=<%=server.URLEncode("Billednavn.jpg")%>">Linknavn
</a>

Husk at tilpasse:
GetFile.LoadFromFile Server.Mappath("\downloads\"&Filename)
med den korrekte sti til filerne.
Og:
Response.Redirect("/default.asp?p=error")
Til hvad den skal gøre ved fejl...

Kan det bruges?

/Thrane



Janus Sander Schiøtt~ (07-01-2007)
Kommentar
Fra : Janus Sander Schiøtt~


Dato : 07-01-07 16:01

Nu kan det selvfølgelig være at denne tråd er død, jeg beklager meget at jeg
ikke er hurtigere ude.

> Kan det bruges?
> /Thrane
Desværre tror jeg ikke at mit webhotel (one.com) understøtter det du har
foreslået. jeg får en fejl der hedder:
Error Type:
Server object, ASP 0177 (0x800401F3)
System message, messageid = 0x800401f3
/test/download/getfile.asp, line 7

Linie 7 = Set GetFile = Server.CreateObject("ADODB.Stream")

Er det ikke noget med at ADODB.Stream ikke er installeret?

Er der andre muligheder med asp?

Mvh Janus


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste