Avatar billede aspguf Nybegynder
15. august 2004 - 22:09 Der 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.

FilePath = "/customers/xxxx.dk/xxxx.dk/httpd.www/test" & Replace(Replace(Request.QueryString("file"), "/", ""), "\", "")

Response.Buffer = True ' Vent med at sende output til scriptet er færdigt

Set st = Server.CreateObject("ADODB.Stream") ' Åben objektet

st.Type = 1 ' Sæt fil-typen til binær
st.Open ' Åben objektet
st.LoadFromFile FilePath ' Åben fil angivet i querystringen: ?file=xxxx

Response.Clear ' Rens output-bufferen

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
%>


Hvad er der galt.. ?
Avatar billede eagleeye Praktikant
15. august 2004 - 22:14 #1
Du kan prøve at udkommentere On Error Resume Next

'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"
Avatar billede aspguf Nybegynder
15. august 2004 - 22:22 #2
den viser kun en box.. se www.fototrold.dk/vis.asp?file=hands1.gif....

den bør virke..
det gøre den nemlige på en iss. men kan ikke få den til at køre på b-one.dk
Avatar billede eagleeye Praktikant
15. august 2004 - 22:43 #3
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"), "/", ""), "\", "")

Sådan her:
FilePath = "/customers/xxxx.dk/xxxx.dk/httpd.www/test/" & Replace(Replace(Request.QueryString("file"), "/", ""), "\", "")
Avatar billede aspguf Nybegynder
15. august 2004 - 23:01 #4
Virker ikke..
Avatar billede aspguf Nybegynder
15. august 2004 - 23:08 #5
hvad der er galt ved jeg ikke. lidt sært.. men den vil bare ikke
Avatar billede eagleeye Praktikant
15. august 2004 - 23:08 #6
HAr du prøvet som jeg har forslået med on error resmun next?
Prøv også at udkommentere linjen med Response.ContentType
Avatar billede eagleeye Praktikant
15. august 2004 - 23:10 #7
Det sidste var en fejl i koden den lave filnavnet fra xx.gif til testxx.gif
Avatar billede eagleeye Praktikant
15. august 2004 - 23:20 #8
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'


'Response.AddHeader "content-disposition", "inline;filename=fil.gif"


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.
Avatar billede aspguf Nybegynder
15. august 2004 - 23:34 #9
Avatar billede eagleeye Praktikant
15. august 2004 - 23:57 #10
Jeg får enne fejl:
Server object error 'ASP 0177 : 800401f3'

Server.CreateObject Failed


Fejlen kommer vist i denne linje:
Set st = Server.CreateObject("ADODB.Stream")
Det vil sige b-one's chili!asp ikke undestytter ADODB.Stream
Avatar billede aspguf Nybegynder
15. august 2004 - 23:58 #11
hvad mon jeg så kan bruge ?
Avatar billede eagleeye Praktikant
16. august 2004 - 00:18 #12
Der er vist ikke så meget at gøre. Det eneste andet man har er FSO, men det virker ikke med binære filer på den måde som ADODB.Stream gør.
Avatar billede aspguf Nybegynder
25. september 2004 - 16:26 #13
Dropper iden og flytter mit domain så jeg kan få det til at virke. !!!
Avatar billede aspguf Nybegynder
25. september 2004 - 16:27 #14
Lukket
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