Avatar billede moejensen Nybegynder
24. september 2001 - 19:47 Der er 12 kommentarer og
2 løsninger

hjælp...

- Hvad er der galt med denn sætning:

<img src=upload.asp?mode=show&id=\"& session(\"usrID\") &\">

session indeholder bruger id\'et

- Og hvordan laver jeg så hvis der ikke er noget billede på den pågældende plads, så skrives der at brugeren ikke har uploadet noget billede, i stedet for en hvid firkant med et kryds i.

her er indholdet af upload.asp

<%
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../Database/bruger.mdb\")

intID =  Request(\"ID\")

If Request.QueryString(\"mode\") = \"show\" Then
    \' Denne kode fremviser den ønskede fil
    strSQL = \"SELECT Image_Type, Image_Data FROM persondata WHERE (ID = \" & intID & \");\"
    Set rs = myConn.Execute(strSQL)
    If Not rs.EOF Then
        Response.ContentType = rs(\"Image_Type\")
        Response.BinaryWrite rs(\"Image_Data\")
    End If
    \' Her frigives Connection objektet fra hukommelsen
    myConn.Close
    Set myConn = Nothing
    Response.End

End If



\' Her skabes FileUp objektet
Set objUpl = Server.CreateObject(\"SoftArtisans.FileUp\")

\' Her sættes en begrænsning på 200 kb.
If objUpl.Form(\"upload\") <> \"\" Then
    \' Hvis formen er blevet submitted
    strFilename = objUpl.Form(\"f1\").UserFilename
    strFileExt = Mid(strFilename, InstrRev(strFilename, \".\") + 1)
    If objUpl.Form(\"f1\").IsEmpty Then
        strMsg = \"<p>Du skal vælge en fil</p>\"
    ElseIf LCase(strFileExt) <> \"gif\" AND LCase(strFileExt) <> \"jpg\" Then
        strMsg = \"<p>Du skal vælge enten et GIF eller JPG fil!</p>\"
    ElseIf objUpl.TotalBytes > 200000 Then
        strMsg = \"<p>Billedet fylder mere end 200 Kb., vælg venligst et andet!</p>\"
    Else
        \' Her gemmes filen i databasen
        Set rsBlob = Server.CreateObject(\"ADODB.RecordSet\")
        strSQL = \"SELECT * FROM persondata WHERE (id = \"& session(\"usrID\") &\")\"
    rsBlob.Open strSQL, myConn, 1, 3
        objUpl.Form(\"f1\").SaveAsBlob rsBlob.Fields(\"Image_Data\")
        rsBlob.Fields(\"Image_Type\") = objUpl.Form(\"f1\").ContentType
        rsBlob.Update
        rsBlob.Close
        \' Her frigives vores recordset fra hukommelsen
        Set rsBlob = Nothing       
        \' Tekst der viser hvad filnavnet er og hvor meget filen fylder
        strMsg = \"<p>Filen <em>\" & strFilename & \"</em> er uploaded til databasen, og fylder <em>\" & objUpl.TotalBytes & \"</em> bytes.</p>\" &_
            \"<p><img src=upload.asp?mode=show&id=\"& session(\"usrID\") &\"></p>\"
    End If
End If

\' Her frigives FileUp objektet fra hukommelsen
Set objUpl = Nothing
%><html><head>
<title>Upload til Access</title>
</head><body>
<%=strMsg%>
<form method=\"POST\" enctype=\"multipart/form-data\" action=\"upload.asp\">
<p><input type=\"file\" size=\"20\" name=\"f1\"></p>
<p><input type=\"submit\" name=\"upload\" value=\"Upload\"></p>
<p>Bemærk: Billedet må max være på 200 kb.</p>
</form>
<%
\' Her frigives Connection objektet fra hukommelsen
myConn.Close
Set myConn = Nothing
%>
</body></html>
Avatar billede medions Nybegynder
24. september 2001 - 19:50 #1
prøv med

<img src=upload.asp?mode=show&id=\'\"& session(\"usrID\") &\"\'>
Avatar billede moejensen Nybegynder
24. september 2001 - 20:00 #2
det virker ikke, og jeg har også prøvet med

<img src=upload.asp?mode=show&id=<%\'\"& session(\"usrID\") &\"\'%>>

og det virker heller ikke
Avatar billede tmceu Praktikant
24. september 2001 - 20:41 #3
Skift denne blok ud:

If Request.QueryString(\"mode\") = \"show\" Then
    \' Denne kode fremviser den ønskede fil
    strSQL = \"SELECT Image_Type, Image_Data FROM persondata WHERE (ID = \" & intID & \");\"
    Set rs = myConn.Execute(strSQL)
    If Not rs.EOF Then
        Response.ContentType = rs(\"Image_Type\")
        Response.BinaryWrite rs(\"Image_Data\")
    else
        Response.ContentType = \"text/html\"
        Response.Write \"Der er ikke uploadet billede\"
    End If
    \' Her frigives Connection objektet fra hukommelsen
    myConn.Close
    Set myConn = Nothing
    Response.End

End If
Avatar billede tmceu Praktikant
24. september 2001 - 20:43 #4
Den anden skal være

<img src=upload.asp?mode=show&id=<% & session(\"usrID\") %> >

forudsat at du har det inde i et alm. HTML dokument
Avatar billede moejensen Nybegynder
24. september 2001 - 20:51 #5
Jeg har sat det ind, og det ser nu således ud:

<table align=\"center\" border=\"0\" width=\"49%\" height=\"229\">
        <tr>
          <td width=\"100%\" align=\"center\" height=\"225\">
            <p align=\"center\" valign=\"middle\"><img src=upload.asp?mode=show&id=<% & session(\"usrID\") %> ></td>
        </tr>
      </table>

men det virker ikke. Og når det sidste ikke virker, kan jeg jo ikke tjekke det øverste *s*

Har du andre forslag
Avatar billede moejensen Nybegynder
24. september 2001 - 20:54 #6
Jeg kan se jeg bliver nøs til at bruge Request(\"ID\") for at jeg ikke får det samme billede frem hver gang, men det virker stadig ikke.

Siden bliver nemlig både brugt til at vide data for personer der er logget ind, og personer der ikke er logget ind, og sessionen indeholdt kun id til personen der er logget ind. *s*
Avatar billede tmceu Praktikant
24. september 2001 - 20:56 #7
Hvad er fejlen ?

Prøv at skrive dette i adresslinie og kontrollere upload.asp isoleret

upload.asp?mode=show&id=xxx

hvor xxx erstattes af et gyldigt nummer for id. Hvilket resultat giver det ?
Avatar billede tmceu Praktikant
24. september 2001 - 21:05 #8
Med Request(\"ID\") mener du sikkert Request.QueryString(\"ID\")
Avatar billede mri Nybegynder
24. september 2001 - 23:02 #9
Prøv lige:

<img src=upload.asp?mode=show&id=<%= session(\"usrID\") %> >
Avatar billede moejensen Nybegynder
25. september 2001 - 07:31 #10
det virker det mri har skrevet, men hvordan skal det se ud, hvis jeg skal bruge request i stedet for session?
Avatar billede tmceu Praktikant
25. september 2001 - 07:49 #11
Det mri skrev, svarede jeg kl. 20:43 i går, og ja det virker???

Med request skal det være denne i stedet

<img src=upload.asp?mode=show&id=<%= Request.QueryString(\"ID\") %> >
Avatar billede moejensen Nybegynder
25. september 2001 - 07:55 #12
du manglede åbentbart ligheds tegnet til at det var rigtigt.


Det ser ud til at virke nu, men det tmceu skrev med at den skrev at der ikke var noget billede i stedet for at vise firkanten med krydset i virker ikke.

If Request.QueryString(\"mode\") = \"show\" Then
    \' Denne kode fremviser den ønskede fil
    strSQL = \"SELECT Image_Type, Image_Data FROM persondata WHERE (ID = \" & intID & \");\"
    Set rs = myConn.Execute(strSQL)
    If Not rs.EOF Then
        Response.ContentType = rs(\"Image_Type\")
        Response.BinaryWrite rs(\"Image_Data\")
    else
        Response.ContentType = \"text/html\"
        Response.Write \"Der er ikke uploadet billede\"
    End If
    \' Her frigives Connection objektet fra hukommelsen
    myConn.Close
    Set myConn = Nothing
    Response.End

End If
Avatar billede tmceu Praktikant
25. september 2001 - 08:04 #13
Ja, det er sg også rigtigt :-)

Har du prøvet upload.asp alene fra adresselinie som jeg foreslog ?

Der er en lille detalje omkring det med at vise en tekst i stedet. upload.asp vil returne en tekst, hvis der ikke er noget billede. Problemet er, at du har den pakket ind i en IMG tag, hvilket vil sige at du får eks. <IMG SRC=Der er ikke uploadet...

Er deu villig til at lave om på din IMG tag ?
Avatar billede moejensen Nybegynder
25. september 2001 - 09:42 #14
for min skyld kan du lave alt det om du vil, bare det virker *s*


hvis jeg køre upload.asp?mode=show&id=xxx
og erstatter xxx med et id der eksistere, kommer billedet fint.
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