Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 11:36 Der er 22 kommentarer og
2 løsninger

Galleri - Bud på hvordan jeg kan løse dette

Jeg er ved at lave et galleri.

Jeg troede sådan set at jeg var færdig med både frontend og admin delen, men måden jeg har lavet det på stinker :)

Frontend delen: http://peterelkjaer.dk/gallery/
Som I kan se, har jeg blot givet de billeder jeg åbner en fast størrelse på default.asp - og det holder jo ikke pga. loadtiden.

Men jeg kan ikke lige selv komme på en smart løsning.
Skulle jeg i min admin del lade brugeren uploade 2 billeder - et lille med en fast størrelse og så et stort til at åbne i popup?

Og hvordan får jeg så de to billeder til at arbejde sammen?
Avatar billede a-torsten Nybegynder
18. oktober 2002 - 11:40 #1
Læs her : http://activedeveloper.dk/komponenter/default.asp?mode=komponent&id=21

Den kan lave et nyt resized billede af det du uploader....

-Anders
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 11:43 #2
Jeg vil ikke bruge noget komponent hvis det kan undgås - det gør jeg heller ikke i min upload.
Avatar billede a-torsten Nybegynder
18. oktober 2002 - 11:45 #3
Så er der nok ikke andet for end at lave 2 uploads... en lille og en stor..
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 11:48 #4
Men hvordan får jeg så den lille til at åbne den store?

Kunne jeg i min admin del lave noget så man skal kalde dem det samme (evt. blot navn, ikke filnavn) hvor det lille blot skal ha' en _small på i enden.

Og kan jeg så strippe den _small på default.asp?
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 11:50 #5
Nej det virker sq' ikke brugervenligt heller - jeg tror lige jeg downloader det komponent - kan se min udbyder understøtter det.

Jeg vender nok lige tilbage om lidt - har aldrig rodet med det før :)
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 11:57 #6
Okay - jeg er lidt på bar bund her.

Lad os sige jeg allerede har uploadet mine billeder med tilhørende tekster til.

Hvor og hvornår skal jeg lave et nyt resizet billede - og gerne et eks. - synes ikke at dok. hjælper mig meget :)
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 12:04 #7
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 12:06 #8
Hov forkert sp :)
Avatar billede thomas_regin Nybegynder
18. oktober 2002 - 12:23 #9
Hejsa,

Hvis jeg skulle lave dette uden brug af komponenter, så ville jeg gøre følgende:

I din Admin har du 2 upload felter, som begge er "Required". Det første er til et teaser-billede, og det næste til en stor udgave af billedet.

Når dine brugere trykker OK, så renamer du billederne, således at du tilføjer _small til billedet i det øverste felt, og _large til det nederste felt.

Herefter gemmer du det originale navn i databasen, hvorefter du kan køre dit galleri, og bare tilføje _small eller _large på de billeder som du gerne vil ha' vist!

Easy as pie! :)

Mvh,

Thomas Regin.
Avatar billede thomas_regin Nybegynder
18. oktober 2002 - 12:26 #10
Hov, kan se, at du allerede selv havde tænkt på dette!

Sorry! ;)
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 12:31 #11
thomas>>Ja ideén er god nok, men hvordan ialverden kan jeg rename mine billeder ved upload uden komponent.

Er det noget jeg skal gøre med asp kode - fordi jeg kan jo ikke blot lave et javascript der gør det, fordi så kan den jo ikke finde noget billede ved det navn at uploade.
Avatar billede mortency Nybegynder
18. oktober 2002 - 12:35 #12
Få se på upload koden din.
Avatar billede thomas_regin Nybegynder
18. oktober 2002 - 12:48 #13
Pelkjaer --> Det kommer jo helt an på, hvordan du har skrevet upload-koden! :) Men du skal jo under alle omstændigheder igang med noget FileSystemObject, og der har du jo alle muligheder for at rename dine filer!

Jeg vil dog stadig anbefale, at du anskaffer en komponent! Jeg kan varmt anbefale ASPupload, selvom den er lidt krydret i prisen!.. Men den er helt fantastisk, og har indtil videre kunnet dække alle mine upload-behov!!

Mvh,

Thomas Regin
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 13:04 #14
Jeg bruger et "developer version upload script"

Som ser således ud:

http://peterelkjaer.dk/gallery/del_af_upload_dot_asp.html
og includen:
http://peterelkjaer.dk/gallery/incPureUpload.html

Håber det kan hjælpe :)
Avatar billede mortency Nybegynder
18. oktober 2002 - 13:15 #15
Lastopp.asp

<!--#include file="Loader.asp"-->
<%
    'For å unngå proxy server caching
    Response.Expires = 0
    Response.Buffer = TRUE
    Response.Clear

    ' load objektet
    Dim load
        Set load = new Loader
       
    ' kalle initialize metoden
    load.initialize
   
    ' Fil binær data
    Dim fileData
        fileData = load.getFileData("file")
       
    'Oppretter når filen er lagret.
    Dim strdato   
        strdato = now()
       
    'Sjekker hvis dag er 1 så blir den 01
    Dim strDay
        strDay = Day( strdato )
        if len(strDay) = 1 then
            strDay = "0" & strDay
        end if
       
    'Sjekker hvis måned er 1 så blir den 01       
    Dim strMonth       
        strMonth = Month( strdato )
        if len(strMonth) = 1 then
            strMonth = "0" & strMonth
        end if
       
    'Sjekker hvis år er 1 så blir den 01   
    Dim strYear   
        strYear = Year( strdato )
        if len(strYear) = 1 then
            strYear = "0" & strYear
        end if
       
    'Sjekker hvis time er 1 så blir den 01       
    Dim strHour       
        strHour = Hour( strdato )
        if len(strHour) = 1 then
            strHour = "0" & strHour
        end if
       
    'Sjekker hvis minutt er 1 så blir den 01
    Dim strMinute   
        strMinute = Minute( strdato )
        if len(strMinute) = 1 then
            strMinute = "0" & strMinute
        end if
       
    'Sjekker hvis sekund er 1 så blir den 01       
    Dim strSecond       
        strSecond = Second( strdato)
        if len(strSecond) = 1 then
            strSecond = "0" & strSecond
        end if
       
    'Setter sammen dag.måned.år-time.minutt.sekund til en variabel.
    Dim strDatoTid   
        strDatoTid = strDay & "." & strMonth & "." & strYear & "-" & strHour & "." & strMinute & "." & strSecond       
   
    ' Fil navn
    Dim fileName,fileExt
        fileName = LCase(load.getFileName("file"))
        'Sjekker fil endelsen etter punktum.
        FileExt = Mid(fileName, InstrRev(fileName, ".") + 1)
        'Oppretter dag.måned.år-time.minutt.sekund.filendelse
        fileName = strDatoTid & "." & fileExt
       
    ' Fil sti
    Dim filePath
        filePath = load.getFilePath("file")
       
    ' Fil sti komplett
    Dim filePathComplete
        filePathComplete = load.getFilePathComplete("file")
       
    ' Fil størelse
    Dim fileSize
        fileSize = load.getFileSize("file")
       
    ' Fil størelse oversatt
    Dim fileSizeTranslated
        fileSizeTranslated = load.getFileSizeTranslated("file")
       
    ' Type
    Dim contentType
        contentType = load.getContentType("file")
       
    ' Nr. av Form elementer
    Dim countElements
        countElements = load.Count
       
    ' Hva som er i Navn feltet
    Dim nameInput
        nameInput = load.getValue("name")
       
    ' Stien hvor filen vil bli opplastet
    Dim pathToFile
        pathToFile = Server.mapPath("uploaded/") & "\" & fileName
       
    'Sjekker om filen er større en 1000 KB   
    If fileSize > 1000000 Then
        error = error & "Filen er for stor. "
    End if
   
    'Sjekker om filen er mindre en 1 KB   
    If fileSize < 1000 Then
        error = error & "Filen er for liten. "
    End if   
   
    'Sjekker om filen er JPG eller JPEG.
    If LCase(FileExt) <> "jpg" AND LCase(FileExt) <> "jpeg" Then
        error = error & "Du må velge enten et JPG eller JPEG bilde. "
    end if
       
    ' Dersom error ikke er "", har det oppstått minst en feil. Skriv ut feilmelding
    If error <> "" Then
        Response.Clear
        %><html>
        <body onload="window.alert('En feil skjedde! <% =error %>');
                window.history.back();">
        &nbsp;</body></html><%
        Response.End
    End If       
       
    'Laster opp data
    Dim fileUploaded
        fileUploaded = load.saveToFile ("file", pathToFile)
   
    'Ødelegger load objektet
    Set load = Nothing
%>

<html>
<head>
    <title>Fil opplastning</title>
    <style>
        body, input, td { font-family:verdana,arial; font-size:10pt; }
    </style>
</head>
<body>
    <p align="center">
        <b>Fil opplastning</b><br>
        <a href="show.asp">Se opplastede filer</a>
    </p>
   
    <table width="700" border="1" align="center">
    <tr>
        <td>Fil Navn</td><td><%= fileName %></td>
    </tr><tr>
        <td>Fil Sti</td><td><%= filePath %></td>
    </tr><tr>
        <td>Fil Sti Komplett</td><td><%= filePathComplete %></td>
    </tr><tr>
        <td>Fil Størelse</td><td><%= fileSize %></td>
    </tr><tr>
        <td>Fil Størelse Oversatt</td><td><%= fileSizeTranslated %></td>
    </tr><tr>
        <td>Fil Type</td><td><%= contentType %></td>
    </tr><tr>
        <td>Nr. med Form Elementer</td><td><%= countElements %></td>
    </tr><tr>
        <td>Navn</td><td><%= nameInput %></td>
    </tr>
    </table><br><br>
   
    <p style="padding-left:220;">
    <%
        If fileUploaded = True Then
            Response.Write fileName & " data opplastet..."
            Else
            Response.Write fileName & " kunne lastes opp..."
        End If
    %>
    </p>
   
    <br>
    <table border="0" align="center">
    <tr>
    <form method="POST" enctype="multipart/form-data" action="Insert.asp">
    <td>Name :</td><td>
        <input type="text" name="name" size="40" value="<%= nameInput %>"></td></tr>
    <td>File :</td><td>
        <input type="file" name="file" size="40"></td></tr>
    <td>&nbsp;</td><td>
        <input type="submit" value="Last opp"></td></tr>
    </form>
    </tr>
    </table>
</body>
</html>
Avatar billede mortency Nybegynder
18. oktober 2002 - 13:15 #16
loader.asp

<%
    Class Loader
        Private dict
       
        Private Sub Class_Initialize
            Set dict = Server.CreateObject("Scripting.Dictionary")
        End Sub
       
        Private Sub Class_Terminate
            If IsObject(intDict) Then
                intDict.RemoveAll
                Set intDict = Nothing
            End If
            If IsObject(dict) Then
                dict.RemoveAll
                Set dict = Nothing
            End If
        End Sub

        Public Property Get Count
            Count = dict.Count
        End Property

        Public Sub Initialize
            Dim binData
                binData = Request.BinaryRead(Request.TotalBytes)
                getData binData
        End Sub
       
        Public Function getFileData(name)
            If dict.Exists(name) Then
                getFileData = dict(name).Item("Value")
                Else
                getFileData = stringToByte("Not Found")
            End If
        End Function
       
        Public Function getValue(name)
            If dict.Exists(name) Then
                getValue = dict(name).Item("Value")
                Else
                getValue = "Not Found"
            End If
        End Function
       
        Public Function saveToFile(name, path)
            If dict.Exists(name) Then
                Dim temp
                    temp = dict(name).Item("Value")
                Dim fso
                    Set fso = Server.CreateObject("Scripting.FileSystemObject")
                Dim file
                    Set file = fso.CreateTextFile(path)
                        For tPoint = 1 to LenB(temp)
                            file.Write Chr(AscB(MidB(temp,tPoint,1)))
                        Next
                        file.Close
                    saveToFile = True
                Else
                    saveToFile = False
            End If
        End Function
       
        Public Function getFileName(name)
            If dict.Exists(name) Then
                Dim temp, tempPos
                    temp = dict(name).Item("FileName")
                    tempPos = 1 + InStrRev(temp, "\")
                    getFileName = Mid(temp, tempPos)
                Else
                getFileName = "Not Found"
            End If
        End Function
       
        Public Function getFilePath(name)
            If dict.Exists(name) Then
                Dim temp, tempPos
                    temp = dict(name).Item("FileName")
                    tempPos = InStrRev(temp, "\")
                    getFilePath = Mid(temp, 1, tempPos)
                Else
                getFilePath = "Not Found"
            End If
        End Function
       
        Public Function getFilePathComplete(name)
            If dict.Exists(name) Then
                getFilePathComplete = dict(name).Item("FileName")
                Else
                getFilePathComplete = "Not Found"
            End If
        End Function
       
        Public Function getFileSize(name)
            If dict.Exists(name) Then
                getFileSize = LenB(dict(name).Item("Value"))
                Else
                getFileSize = "Not Found"
            End If
        End Function

        Public Function getFileSizeTranslated(name)
            If dict.Exists(name) Then
                temp = 1 + LenB(dict(name).Item("Value"))
                    If Len(temp) <= 3 Then
                        getFileSizeTranslated = temp & " bytes"
                        ElseIf Len(temp) > 6 Then
                        temp = FormatNumber(((temp / 1024) / 1000), 2)
                        getFileSizeTranslated = temp & " megabytes"   
                        Else
                        temp = FormatNumber((temp / 1024), 2)
                        getFileSizeTranslated = temp & " kilobytes"
                    End If
                Else
                getFileSize = "Not Found"
            End If
        End Function
       
        Public Function getContentType(name)
            If dict.Exists(name) Then
                getContentType = dict(name).Item("ContentType")
                Else
                getContentType = "Not Found"
            End If
        End Function

    Private Sub getData(rawData)
        Dim separator
            separator = MidB(rawData, 1, InstrB(1, rawData, ChrB(13)) - 1)

        Dim lenSeparator
            lenSeparator = LenB(separator)

        Dim currentPos
            currentPos = 1
        Dim inStrByte
            inStrByte = 1
        Dim value, mValue
        Dim tempValue
            tempValue = ""

        While inStrByte > 0
            inStrByte = InStrB(currentPos, rawData, separator)
            mValue = inStrByte - currentPos

            If mValue > 1 Then
                value = MidB(rawData, currentPos, mValue)

                Dim begPos, endPos, midValue, nValue
                Dim intDict
                    Set intDict = Server.CreateObject("Scripting.Dictionary")
       
                    begPos = 1 + InStrB(1, value, ChrB(34))
                    endPos = InStrB(begPos + 1, value, ChrB(34))
                    nValue = endPos

                Dim nameN
                    nameN = MidB(value, begPos, endPos - begPos)

                Dim nameValue
                    If InStrB(1, value, stringToByte("Content-Type")) > 1 Then

                        begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
                        endPos = InStrB(begPos + 1, value, ChrB(34))
                       
                        midValue = MidB(value, begPos, endPos - begPos)
                            intDict.Add "FileName", trim(byteToString(midValue))
                               
                        begPos = 14 + InStrB(endPos + 1, value, stringToByte("Content-Type:"))
                        endPos = InStrB(begPos, value, ChrB(13))
                       
                        midValue = MidB(value, begPos, endPos - begPos)
                            intDict.Add "ContentType", trim(byteToString(midValue))
                       
                        begPos = endPos + 4
                        endPos = LenB(value)
                       
                        nameValue = MidB(value, begPos, endPos - begPos)
                    Else
                        nameValue = trim(byteToString(MidB(value, nValue + 2)))
                    End If

                    intDict.Add "Value", nameValue
                    intDict.Add "Name", nameN

                    dict.Add byteToString(nameN), intDict
            End If

            currentPos = lenSeparator + inStrByte
        Wend
    End Sub
   
    End Class

    Private Function stringToByte(toConv)
        Dim tempChar
        For i = 1 to Len(toConv)
            tempChar = Mid(toConv, i, 1)
            stringToByte = stringToByte & chrB(AscB(tempChar))
        Next
    End Function

    Private Function byteToString(toConv)
        For i = 1 to LenB(toConv)
            byteToString = byteToString & chr(AscB(MidB(toConv,i,1)))
        Next
    End Function
%>
Avatar billede mortency Nybegynder
18. oktober 2002 - 13:17 #17
insert.htm

<html>
<head>
    <title>Fil opplastning</title>
    <style>
        body, input { font-family:verdana,arial; font-size:10pt; }
    </style>
</head>
<body>
    <p align="center">
        <b>Fil opplastning</b><br>
        <a href="show.asp">Se opplastede filer</a>
    </p>
   
    <table border="0" align="center">
    <tr>
    <form method="POST" enctype="multipart/form-data" action="Insert.asp">
    <td>Name :</td><td>
        <input type="text" name="name" size="40"></td></tr>
    <td>File :</td><td>
        <input type="file" name="file" size="40"></td></tr>
    <td>&nbsp;</td><td>
        <input type="submit" value="Last opp"></td></tr>
    </form>
    </tr>
    </table>

</body>
</html>
Avatar billede mortency Nybegynder
18. oktober 2002 - 13:21 #18
show.asp

<%
    Response.Buffer = True
%>
<html>
<head>
    <title>Alle opplastede filer</title>
    <style>
        body, input, td { font-family:verdana,arial; font-size:10pt; }
    </style>
</head>
<body>
    <p align="center">
        <b>Alle opplastede filer</b><br>
        <a href="insert.htm">Last opp fil</a>
    </p>

<%
    ' File System Object
    Dim fso
        Set fso = Server.CreateObject("Scripting.FileSystemObject")
       
    ' "Uploaded" Folder
    Dim folder
        Set folder = fso.GetFolder(Server.MapPath("uploaded/"))
       
    If folder.Size > 0 Then
        Response.Write "<ul>"
        For Each file In folder.Files
                Response.Write "<li type=""circle"">"
                Response.Write "<a href=""uploaded/" & file.Name & """>"
                Response.Write "<b>" & file.Name & "</b></a>&nbsp; &nbsp;"
                Response.Write "( Size: " & file.Size & " )&nbsp; &nbsp;"
        Next
        Response.Write "</ul>"
    Else
        Response.Write "<ul><li type=""circle"">Ingen filer opplastet.</ul>"
    End If
%>
</body>
</html>
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 13:23 #19
mortency>>Det var en del du lige skød af der :)
Er det også uden komponent eller hvad?
Avatar billede mortency Nybegynder
18. oktober 2002 - 13:24 #20
Ja legg alle filene i samme sted med en mappe som heter uploaded så virker scriptet.
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 13:30 #21
Jeg skal måske sige at når jeg er færdig med dette her, skriver jeg det hele ned i en extention.mxp (er en dreamweaver extiontion der gør at man blot kan installere extention'en og derefter kan man redigere i Dreamweavers' designview) og sælger det som en developer version på DW portalerne.

Er du stadig sikker på at jeg må bruge det så?
Avatar billede mortency Nybegynder
18. oktober 2002 - 13:30 #22
lastopp.asp skal hete insert.asp  :-)
Avatar billede pelkjaer Nybegynder
18. oktober 2002 - 14:01 #23
Det virker jo fint - så hvis du lige ville svare engang - også på mit sidste spørgsmål.
Avatar billede pelkjaer Nybegynder
29. oktober 2002 - 10:55 #24
Det kan vi ikke vente på mere.
I andre deler bare.
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