Avatar billede gatez Nybegynder
18. maj 2003 - 18:08 Der er 5 kommentarer og
1 løsning

Ænder FilNavn - Upload

Jeg har et lille problem på min hjemmeside... Bruger på min side kan oprette en profil med billeder af der deres bil. Men når de opretter en bil vælger de også via en form hvor på deres harddisk billedet ligger... Og her opstår problemmet... Hvis 2 personer kalder deres billede for det samme så overskriver den bare det ene billede på serveren... Og det må ikke ske... Så hvordan gør man sådan at når de uploader billedet skal den ændre filnavet til noget tilfældigt ?
Her er koden på den side som uploader billedet og gemmer filnavnet i databasen:

<%

Dim upl, NewFileName
 
Set upl = Server.CreateObject("ASPSimpleUpload.Upload")
 
If Len(upl.Form("File1")) > 0 Then
    NewFileName = "/Images/Biler/" & upl.ExtractFileName(upl.Form("File1"))
    If upl.SaveToWeb("File1", NewFileName) Then
        Response.Write("Billede blev uploadet på server")
    Else
        Response.Write("Fejl! Billedet blev ikke uploadet !!! ")
    End If
End If

strConnect = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../database/bodykits.dk/carstyle.mdb")
Set objConn = Server.CreateObject("ADODB.Connection")
call objConn.Open(strConnect)

BilerId = upl.Form("BilerId")
OpretId = upl.Form("OpretId")
Bil = upl.Form("Bil")
Model = upl.Form("Model")
File1 = upl.ExtractFileName(upl.Form("File1"))
Historie = upl.Form("Historie")
Hulstorelse = upl.Form("Hulstorelse")


strINSERT = "INSERT INTO Model (BilerId, OpretId, Bil, Model, File1, Historie, Falge) VALUES ( '"
    strINSERT = strINSERT &  BilerId & "', '" & OpretId & "', '" & Bil & "', '" & Model & "', '" & File1 & "', '" & Historie & "', '" & Hulstorelse & "')"
 
    call objConn.execute(strINSERT)
objConn.close()

Response.Redirect "viscarstyle.asp?BilerId=" & BilerId & "&Bil=" & Bil
%>
Avatar billede gatez Nybegynder
18. maj 2003 - 19:54 #1
Jeg gir op.... :-(
Avatar billede eagleeye Praktikant
18. maj 2003 - 22:12 #2
Her er koden, den lavet et fil navn med op til 10 tilfældige tal:


<%

Dim upl, NewFileName, sti, index, extNavn, nytnavn
 
Set upl = Server.CreateObject("ASPSimpleUpload.Upload")
 
If Len(upl.Form("File1")) > 0 Then
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
   
    sti = "/Images/Biler/"
    NewFileName = upl.ExtractFileName(upl.Form("File1"))
   
    index = InStrRev(NewFileName, ".")
    if index > 0 then extNavn = Mid(NewFileName,index+1)

    randomize
    nytnavn = sti & CStr(Int(rnd*9999999999)+1) & "." & extNavn
    do while fso.FileExists(Server.MapPath(nytnavn))
        randomize
        nytnavn = sti & CStr(Int(rnd*9999999999)+1) & "." & extNavn
    loop
    Set fso = nothing
    NewFileName = nytnavn

    If upl.SaveToWeb("File1", NewFileName) Then
        Response.Write("Billede blev uploadet på server")
    Else
        Response.Write("Fejl! Billedet blev ikke uploadet !!! ")
    End If
End If

strConnect = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../database/bodykits.dk/carstyle.mdb")
Set objConn = Server.CreateObject("ADODB.Connection")
call objConn.Open(strConnect)

BilerId = upl.Form("BilerId")
OpretId = upl.Form("OpretId")
Bil = upl.Form("Bil")
Model = upl.Form("Model")
File1 = upl.ExtractFileName(upl.Form("File1"))
Historie = upl.Form("Historie")
Hulstorelse = upl.Form("Hulstorelse")


strINSERT = "INSERT INTO Model (BilerId, OpretId, Bil, Model, File1, Historie, Falge) VALUES ( '"
    strINSERT = strINSERT &  BilerId & "', '" & OpretId & "', '" & Bil & "', '" & Model & "', '" & File1 & "', '" & Historie & "', '" & Hulstorelse & "')"
 
    call objConn.execute(strINSERT)
objConn.close()

Response.Redirect "viscarstyle.asp?BilerId=" & BilerId & "&Bil=" & Bil
%>
Avatar billede gatez Nybegynder
18. maj 2003 - 22:13 #3
1000 Tak jeg prøver lige....
Avatar billede gatez Nybegynder
18. maj 2003 - 22:17 #4
Den gemmer det forkerte filnavn i databasen... Det gemmer original navnet i databasen... Hvordan laver jeg om på det ?
Avatar billede eagleeye Praktikant
18. maj 2003 - 22:19 #5
Arh det er i denne linje, skal det kun være selv filnanvet eller sti/filnavn ?

File1 = upl.ExtractFileName(upl.Form("File1"))

Hvis det skal være med sti så ret den til:

File1 = NewFileName
Avatar billede gatez Nybegynder
18. maj 2003 - 22:25 #6
Det virker.... 100000000 Mange tak...
Skriver du ikke lige et svar på: http://www.eksperten.dk/spm/354207
Så du kan få nogle point...
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