Avatar billede none01 Nybegynder
27. juni 2006 - 00:22 Der er 7 kommentarer og
1 løsning

Download script virker ikke i IE og Opera?

Hej, jeg har lavet et script til at downloade filer uden at brugeren kan se den direkte link til filen.
Jeg bruger aspsmartupload for at kunne gør det, men en meget skummel ting sker hvis man bruger IE og Opera.
Hvis man henter f.eks. en zip fil med IE kan man ikke åbne filen og i opera kan man åbne zip filen, men ikke filen i zip filen.
Og det hele virker fint i firefox?????

Det er koden:

download = Request.QueryString("download")
filename = Request.QueryString("filename")
id = Request.QueryString("id")
dcount = Request.QueryString("dcount")
referer = Request.ServerVariables("HTTP_REFERER")
httphost = Request.ServerVariables("HTTP_HOST")

if (download = "true" AND filename <> "") AND (instr(referer, "none01.lir.dk")<>0 AND referer <> "") AND (left(referer,20) = "http://none01.lir.dk" OR left(referer,24) = "http://www.none01.lir.dk") then
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  dir = "my_small_scripts/files_to_download/" & filename
  call mySmartUpload.DownloadFile(dir)
  ' mySmartUpload.DownloadFile("my_small_scripts/files_to_download/" & filename)
  set mySmartUpload = nothing
  strsql = "UPDATE my_scripts SET downloadcount = '" & dcount+1 & "', lastdownloaded = '" & FormatDateTime(Now, vbShortDate) & " " & FormatDateTime(Now, vbShortTime) & "' WHERE id = '" & id & "'"
  con.execute(strsql)
  'Response.Redirect("default.asp?page=2")
  elseif download = "true" then
  Response.Write(left(referer,24))
  Response.Write("<div class=""error"">You are not allowed to make a direct link to a file!</div><br />")
end if

  Set rs = Server.CreateObject("ADODB.Recordset")
  strsql = "SELECT * FROM my_scripts ORDER BY id DESC"
  rs.Open strsql, con, 1, 2
  Do While NOT rs.EOF
%>
<table width="100%" border="0" class="table">
            <tr align="center" class="nav_long">
            <td valign="top"><span class="style4">
        <%=rs("name")%>
        </span></td>         
            </tr>
              <td height="100%" align="left" valign="top">
<table width="100%" border="0" class="collapse">
  <tr>
    <td width="22%" valign="top" class="underline2">Description:</td>
    <td width="78%" valign="top"class="underline2"><%=rs("description")%></td>
  </tr>
  <tr>
    <td valign="top" class="underline2">Author:</td>
    <td valign="top" class="underline2"><%=rs("author")%></td>
  </tr>
  <tr>
    <td valign="top" class="underline2">Version:</td>
    <td valign="top" class="underline2"><%=rs("version")%></td>
  </tr>
  <tr>
    <td valign="top" class="underline2">Release date: </td>
    <td valign="top" class="underline2"><%=rs("releasedate")%></td>
  </tr>
  <tr>
    <td valign="top" class="underline2">Last time downloaded: </td>
    <td valign="top" class="underline2"><%=rs("lastdownloaded")%></td>
  </tr>
  <tr>
    <td valign="top" class="underline2">Filesize:</td>
    <td valign="top" class="underline2"><%=rs("filesize")%></td>
  </tr>
  <tr>
    <td valign="top" class="underline2">Downloaded:</td>
    <td valign="top" class="underline2"><%=rs("downloadcount")%> time(s) </td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top" align="left">
    <form method="post" action="default.asp?page=2&download=true&filename=<%=rs("filename")%>&dcount=<%=rs("downloadcount")%>&id=<%=rs("id")%>">
    <input type="submit" class="mainoption" value="Download" />
    </form>
    </td>
  </tr>
</table>
      </td>
            </tr>
          </table>
      <br />
<%
rs.MoveNext
loop
set rs = nothing
con.Close
set con = nothing
%>
Avatar billede fennec Nybegynder
27. juni 2006 - 08:28 #1
Den bliver sikkert downloadet med den forkerte encType:
call mySmartUpload.DownloadFile(dir,"application/x-zip-compressed")
Avatar billede none01 Nybegynder
27. juni 2006 - 11:02 #2
jeg har os prøve det, det hjalp ikke.
Avatar billede fennec Nybegynder
27. juni 2006 - 12:00 #3
Når du nu siger "åbne" hvad mener du så egentlig med det??

Der er nemlig en fejl i IE, som gør at man ikke kan åbne filer direkte via "save as/open" dialogboksen når man bruger et download komponent. Filen skal gemmes først.

Kan evt være noget af det samme problem med Opera...
Avatar billede none01 Nybegynder
27. juni 2006 - 13:26 #4
Filen er bare smadret hvis man gemmer den på computeren og så prøver at åbne den.
Du kan selv prøve det http://none01.lir.dk/default.asp?page=2
Avatar billede fennec Nybegynder
27. juni 2006 - 13:45 #5
Så prøv at bruge Stream metoden i stedet. Den kører nemlig uden 3. parts komponenter. Der er en kode her:
http://www.eksperten.dk/spm/529659
Avatar billede none01 Nybegynder
27. juni 2006 - 14:44 #6
Nu virker det, men hvis man prøver at åbne filen i IE kommer den med samme fejl.

Er det bare noget som er galt i IE eller hvad?

Smid lige et svar ind :)
Avatar billede none01 Nybegynder
27. juni 2006 - 14:53 #7
Og tak for hjælpen :)
Avatar billede fennec Nybegynder
27. juni 2006 - 15:23 #8
Der er en fejl i IE som gør at du ikke kan åbne filerne direkte når du tvinger en download igang. Den kan nemlig ikke finde filen igen i den tempmappe filen bliver downloaded til.

.o) <-- One Eyed Jack
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
Kurser inden for grundlæggende programmering

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