18. oktober 2002 - 11:36Der 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?
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!
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.
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!!
<!--#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();"> </body></html><% Response.End End If
'Laster opp data Dim fileUploaded fileUploaded = load.saveToFile ("file", pathToFile)
<p style="padding-left:220;"> <% If fileUploaded = True Then Response.Write fileName & " data opplastet..." Else Response.Write fileName & " kunne lastes opp..." End If %> </p>
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 = ""
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 %>
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.
Det kan vi ikke vente på mere. I andre deler bare.
Synes godt om
Ny brugerNybegynder
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.