Avatar billede fluii Nybegynder
17. januar 2003 - 16:13 Der er 5 kommentarer og
2 løsninger

"Download-System"

Jeg ved man kan få et system til PHP, hvor linket til filen er download.php?file=2 - den downloader så efterfølgende filen man ville have, i det navn som programmet hedder. Men filen som ligger på serveren hedder f.eks. file123.tmp
Det skulle gerne være med database (og altså i ASP), så jeg kan skrive filens beliggenhed ind (filer/file123.tmp), og hvad filen skal hedde, når den bliver downloadet af brugeren.
Avatar billede keysersoze Ekspert
17. januar 2003 - 16:18 #1
på både www.activeserverpages.dk samt www.netcoders.dk kan du downloade sådanne tællere så tag et kig på de to sider
Avatar billede fluii Nybegynder
17. januar 2003 - 16:40 #2
det er ikke en tæller jeg skal bruge, men et system så når folk klikker på et link, åbner den download.asp?file=4 som så sender en fil

i PHP ser det sådan her ud:

  header("Content-type: application/force-download");
    $rs = mysql_query("SELECT name FROM filelist WHERE id=$HTTP_GET_VARS[id]");
    $row = mysql_fetch_row( $rs );
    if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE"))
      header("Content-Disposition: filename=$row[0]" ); // For IE
    else
      header("Content-Disposition: attachment; filename=$row[0]"); // For Other browsers
    readfile( realpath ("")."file$HTTP_GET_VARS[id].htx" );

Men jeg vil gerne have det i ASP
Avatar billede keysersoze Ekspert
17. januar 2003 - 16:49 #3
grunden til normalt at man bruger "download.asp?file=4" er at man gerne vil føre statistik på hvilke links der klikkes på...

anyway - det er også netop det du kan finde på de to angivne sider
Avatar billede nielsmo Nybegynder
18. januar 2003 - 22:13 #4
tror det er det her du vil ha :

databasen :
id  fil
1  fil1.zip
1  fil2.zip


asp siden :

<%
Set rsdown = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * From filer where id = " & request.querystring("id") & ""
rsdown.Open strSQL, conn, 1, 3
%>
<%
response.Redirect rsdown("fil")
%>

tror nok man kan gøre det sådan men jeg er ikke sikker
Avatar billede fluii Nybegynder
18. januar 2003 - 23:57 #5
ja næsten...

Har pt. brugt istedet <META HTTP-EQUIV='Refresh' CONTENT='3;URL=<%response.write rs("link")%>'>

Men det jeg ville have, var så når man dl filen, så hedder den f.eks program.exe, men på serveren hedder den fil.tmp
- Altså så man ikke kan skrive /filer/program.exe
Avatar billede fagerholt Nybegynder
19. januar 2003 - 20:19 #6
Her er koden jeg bruger for at kunne skjule filernes rigtige navne, samt logge IP-nummer. Det kan let udbygges til at spørge i databasen på baggrund af en querystring. Folderen med filerne har jeg passwordbeskyttet vis IISen.

<%
Response.Clear
Response.AddHeader "Content-Disposition", "attachment; filename=filename_when_download.zip"
response.contentType = "application/zip"
       
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Type = 1
objStream.Open
objStream.LoadFromFile server.mapPath("/files/filename_in_filesystem.zip")

response.binarywrite objStream.Read
%>
Avatar billede keysersoze Ekspert
28. januar 2003 - 20:51 #7
halluu?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester