15. august 2004 - 22:09Der er
13 kommentarer og 1 løsning
hent pic og vi dem..
Hej jeg er så uheldig at jeg arbejder på b-one system. "Ciliasp" og er ved at lave et fil der kan hente et pic. men den vil sku ikke.
Souces kode !!
<% ' ' *** Send fil til klienten *** ' af: Bjarke Walling Petersen <bwp@bwp.dk> ' if Request.QueryString("file") <> "" Then
On Error Resume Next ' Gå ikke ned ved fejl (f.eks. hvis filen ikke eksisterer)
' Find fil-stien ud fra filnavnet angivet i QueryStringen: ?file=xxxx ' Både \ og / fjernes fra filnavnet for at sikre at man ikke kan gå ind i andre mapper. ' Filerne skal selvfølgelig være placeret et sted, så webserveren ikke kan sende dem. ' Dette ville spolere hele idéen. Her er de placeret i C:\Filer\. Har man ikke egen ' server, men et webhotel, har man normalt adgang til den mappe som webmappen ligger i. ' Her kan filerne også placeres.
Response.ContentType = "image/gif" ' Sæt fil-typen (MIME-Type). I dette tilfælde en ' .gif-fil. Se evt. artiklen 'MIME Content-types i IIS'
' Følgende sætning gør at der fremkommer en download-boks hos brugeren. Hvis man ønsker ' at det f.eks. er et billede, der vises i en HTML-fil, skal man selvfølgelig ikke gøre det. ' Det sætter også det viste filnavn til fil.gif. Prøv evt. at ændre 'attachment' til 'inline'. Response.AddHeader "content-disposition", "inline;filename=fil.gif"
Response.BinaryWrite st.Read() ' Udskriv filen til brugeren: (I første omgang bufferen)
st.Close ' Luk objektet Set st = Nothing ' Ryd op Response.End ' Afslut scriptet Else Response.write "Husk vis.asp?file=hands1.gif" end if %>
'On Error Resume Next ' Gå ikke ned ved fejl (f.eks. hvis filen ikke eksisterer)
Så skulle du få en fejl kode og måske endag også i hvilken linje fejlen er. Får du en fejl 404/403/405/505 mf.. Så prøv i IE slå denne fra: funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"
Så kunne det måske være siten som driller. Umiddelbart ser det ud som om der mangler et / efter test, er test ikke en folder her og ikke alle filre som hedder noget med testxx.gif? FilePath = "/customers/xxxx.dk/xxxx.dk/httpd.www/test" & Replace(Replace(Request.QueryString("file"), "/", ""), "\", "")
Hvis det ikke virker er det fordi der kommer en fejl. Du har On Error Resume Next som gør fejl koder ikke vises. Så derfor skal den linje udkommenteres, så den stopper i den linje hvor fejlen er og udskriver en fejl kode + teskt. Det muligt du også er nød til at udkommentere disse to linjer så det bliver et "normalt" output der kommer:
'Response.ContentType = "image/gif" ' Sæt fil-typen (MIME-Type). I dette tilfælde en ' .gif-fil. Se evt. artiklen 'MIME Content-types i IIS'
Som koden er kan fejlen enten skyldes noget med fil placeringen er flerne i en folder som hedder test? Det kan være der kommer fejl i linjen med "ADODB.Stream" at den ikke kender det object.
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.