Avatar billede mettecarsten Nybegynder
09. februar 2007 - 06:42 Der er 5 kommentarer og
1 løsning

Skrive uploadet billede til database

Hej eksperter

Jeg har et formentlig meget simpelt spg., men det driller bare :-). Jeg bruger nedenstående kode for at få uploadet et billede, hvilket også virker helt fint. Derudover ønsker jeg at få det tilføjet i databasen, at en bruger har uploadet et billede. Den skriver fint nok til databasen, men kan bare ikke få den til at skrive billedets filnavn!

<%function resize(sti,navn,nyX)
    Set objImg = Server.CreateObject("AspImage.Image")
        objImg.PadSize = 0
        objImg.LoadImage Server.MapPath(sti & navn)
        objImg.GetImageFileSize Server.MapPath(sti & navn), X, Y
   
        ResizedX = nyX
        objImg.MaxX = X
        objImg.MaxY = Y
   
        if X > ResizedX then
            ResizedY = (ResizedX / objImg.MaxX) * objImg.MaxY
            objImg.ResizeR ResizedX, ResizedY
            objImg.FileName = (Server.MapPath(sti & navn))
            objImg.SaveImage
        end if
   
    Set objImg = Nothing
end function

If Request("s") = "upload" Then

  Dim mySmartUpload
  Dim file1
  Dim intCount
  intCount=0

  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

  mySmartUpload.Upload

  For each file1 In mySmartUpload.Files

      If not file1.IsMissing Then
       
        file1.SaveAs("/koncept/upload/" & Session("Bruger") & "/" & file1.FileName)

        Response.Write("FileName = " & file1.FileName & "<br>")
        call resize("/koncept/upload/" & Session("Bruger") & "/",file1.FileName,300)
        Response.Write("<img src=""/koncept/upload/" & Session("Bruger") & "/" & file1.FileName & """ title=""Dit billede er nu uploadet""><br>")
        intCount = intCount + 1
      End If
  Next

 
Bruger = Session("Bruger")
Billede = " & file1.FileName & "

SQL = "INSERT INTO Upload(Bruger, Billede)"
SQL = SQL & "Values("
    SQL = SQL & "'" & Bruger & "',"
    SQL = SQL & "'" & Billede & "'"
    SQL = SQL & ")"
   
    Set RS = conn.execute(SQL)
   
Response.Write(intCount & " file(s) uploaded.<BR>")

Else
%>

Hvordan skal Billede = " & file1.FileName & " rettes (har prøvet med mange varianter)?

På forhånd tak.
Avatar billede madeindk Nybegynder
09. februar 2007 - 09:34 #1
Billede = file1.FileName
Avatar billede mettecarsten Nybegynder
09. februar 2007 - 09:57 #2
Den variant har jeg også prøvet - giver følgende fejlmelding:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/koncept/adminsideupload.asp, line 120

Line 120 er netop Bille = ...
Avatar billede madeindk Nybegynder
09. februar 2007 - 19:50 #3
Ok, det her burde meget gerne virke så...

<%
If Request("s") = "upload" Then

    Dim mySmartUpload
    Dim file1
    Dim intCount
    intCount=0
   
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
   
    mySmartUpload.Upload
   
    For each file1 In mySmartUpload.Files
   
        If not file1.IsMissing Then
       
            file1.SaveAs("/koncept/upload/" & Session("Bruger") & "/" & file1.FileName)
           
            Response.Write("FileName = " & file1.FileName & "<br>")
            call resize("/koncept/upload/" & Session("Bruger") & "/",file1.FileName,300)
            Response.Write("<img src=""/koncept/upload/" & Session("Bruger") & "/" & file1.FileName & """ title=""Dit billede er nu uploadet""><br>")
            intCount = intCount + 1
           
            Bruger = Session("Bruger")
            Billede = " & file1.FileName & "
           
            SQL = "INSERT INTO Upload(Bruger, Billede)"
            SQL = SQL & "Values("
            SQL = SQL & "'" & Bruger & "',"
            SQL = SQL & "'" & Billede & "'"
            SQL = SQL & ")"
           
            Conn.Execute(SQL)
       
        End If
   
    Next
   
End If
%>
Avatar billede madeindk Nybegynder
09. februar 2007 - 19:51 #4
Eller nej, der er skam ingen grund til at definere det i variabler :-)

<%
If Request("s") = "upload" Then

    Dim mySmartUpload
    Dim file1
    Dim intCount
    intCount=0
   
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
   
    mySmartUpload.Upload
   
    For each file1 In mySmartUpload.Files
   
        If not file1.IsMissing Then
       
            file1.SaveAs("/koncept/upload/" & Session("Bruger") & "/" & file1.FileName)
           
            Response.Write("FileName = " & file1.FileName & "<br>")
            call resize("/koncept/upload/" & Session("Bruger") & "/",file1.FileName,300)
            Response.Write("<img src=""/koncept/upload/" & Session("Bruger") & "/" & file1.FileName & """ title=""Dit billede er nu uploadet""><br>")
            intCount = intCount + 1
           
            SQL = "INSERT INTO Upload(Bruger, Billede)"
            SQL = SQL & "Values("
            SQL = SQL & "'" & Session("Bruger") & "',"
            SQL = SQL & "'" & file1.FileName & "'"
            SQL = SQL & ")"
           
            Conn.Execute(SQL)
       
        End If
   
    Next
   
Else
%>
Avatar billede mettecarsten Nybegynder
10. februar 2007 - 07:20 #5
Så har jeg arbejdet videre med dine forslag. Takker. Begge forslag ender dog med fejl omkring resize-funktionen. Efterfølgende har jeg prøvet alt muligt og til sidst er det lykkedes :-)

Denne kode skulle få det til at virke:

<%
            function resize(sti,navn,nyX)
    Set objImg = Server.CreateObject("AspImage.Image")
        objImg.PadSize = 0
        objImg.LoadImage Server.MapPath(sti & navn)
        objImg.GetImageFileSize Server.MapPath(sti & navn), X, Y
   
        ResizedX = nyX
        objImg.MaxX = X
        objImg.MaxY = Y
   
        if X > ResizedX then
            ResizedY = (ResizedX / objImg.MaxX) * objImg.MaxY
            objImg.ResizeR ResizedX, ResizedY
            objImg.FileName = (Server.MapPath(sti & navn))
            objImg.SaveImage
        end if
   
    Set objImg = Nothing
end function

If Request("s") = "upload" Then

  Dim mySmartUpload
  Dim file1
  Dim intCount
  intCount=0

  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

  mySmartUpload.Upload

  For each file1 In mySmartUpload.Files

      If not file1.IsMissing Then
       
        file1.SaveAs("/koncept/upload/" & Session("Bruger") & "/" & file1.FileName)
       
          SQL = "INSERT INTO Upload(Bruger, Billede)"
            SQL = SQL & "Values("
            SQL = SQL & "'" & Session("Bruger") & "',"
            SQL = SQL & "'" & file1.FileName & "'"
            SQL = SQL & ")"
           
            Conn.Execute(SQL)

        Response.Write("FileName = " & file1.FileName & "<br>")
        call resize("/koncept/upload/" & Session("Bruger") & "/",file1.FileName,300)
        'Response.Write("<img src=""/koncept/upload/" & Session("Bruger") & "/" & file1.FileName & """ title=""Dit billede er nu uploadet""><br>")
        intCount = intCount + 1
      End If
  Next
   
Response.Write(intCount & " file(s) uploaded.<BR>")

Else
%>

Tak for hjælpen. Smid et svar for point - de er fuld fortjent.
Avatar billede madeindk Nybegynder
10. februar 2007 - 13:09 #6
Ok cool - det var godt du fik det til at virke :-)
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