Avatar billede dk_zerocool Nybegynder
06. oktober 2003 - 23:40 Der er 6 kommentarer og
1 løsning

Fejl ved upload uden fil

Jeg har lavet noget upload-halløj med fornavn, efternavn billede osv. som sådan set virker fint, men problemet kommer hvis man undlader at uploade et billede så gemmer skidtet heller ikke de andre data, da der er noget som går galt under upload af billedet, så skrotter den også det andet.

Uddrag fra koden:

Set Upload = Server.CreateObject("Persits.Upload")
     
    Upload.SaveVirtual "../gallery/temp"

  'Prøver at fange hvis der ikke er noget med   
    test = Upload.form("F1")
     
    if test <> null then
    Response.write "ingen fil"
    else
    Response.write "fil er med: " & test
    end if

Jeg prøver at tjekke på om der er noget i filen, men det virker ikke, nogen som har et forslag til en løsning.
Avatar billede fritz-79th Nybegynder
07. oktober 2003 - 00:02 #1
if isNull(test) then
    Response.write "ingen fil"
else
    Response.write "fil er med: " & test
end if
Avatar billede dk_zerocool Nybegynder
07. oktober 2003 - 00:06 #2
Jeg får stadig "fil er med:" udskrevet når jeg ikke sender noget med over
Avatar billede thesurfer Nybegynder
07. oktober 2003 - 00:18 #3
jeg har lige fået at vide at, hvis man bruger enctype="multipart/form-data" kan man ikke læse indholdet af formen.. så du skal have fat i Upload.X, hvor X indholder stien/noget fra formen. f.eks. kunne X være value eller filename, eller filetype..
Avatar billede thesurfer Nybegynder
07. oktober 2003 - 00:38 #4
se om du kan få noget ud af det her:
http://support.persits.com/default.asp?Words=All&query=upload.files&Search=Search

ellers er der en søgefunktion på side..
urls: www.aspupload.com www.persits.com
Avatar billede thesurfer Nybegynder
07. oktober 2003 - 00:42 #5
jeg tror at du skal bruge noget der ligner det her:

For Each File in Upload.Files
  if len(File.Path) > 0 then
    ' længden af indholdet af File.Path er større end 0
    ' dvs: der står noget i File.Path
  else
    ' længden af indholdet af File.Path er MINDRE end 0   
    ' dvs: der står IKKE noget i File.Path
  end if
next
Avatar billede dk_zerocool Nybegynder
07. oktober 2003 - 02:10 #6
Jeg kan ikke lige få det til at virke, så jeg smider lige hele koden ind:

<%
      Set UploadProgress = Server.CreateObject("Persits.UploadProgress")

      Set Upload = Server.CreateObject("Persits.Upload")
      Upload.ProgressID = Request.QueryString("PID")
     
      On Error Resume Next
     
      Upload.SaveVirtual "../gallery/temp"

  If Err <> 0 Then
      Response.Write "Der forekom en fejl : " & Err.Description
  Else
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../database/xsmodb.mdb")

      For Each File in Upload.Files
     
    if len(File.Path) > 0 then
    ' længden af indholdet af File.Path er større end 0
    ' dvs: der står noget i File.Path

      strFornavn = Upload.form("fornavn")
      strEfternavn = Upload.form("efternavn")
      strStilling = Upload.form("stilling")
      strBeskrivelse = Upload.form("beskrivelse")
      strBillede = File.ExtractFileName
           
      strSQL = "INSERT INTO Personale(fornavn, efternavn, stilling, beskrivelse, billede) VALUES('"& strFornavn &"','"& strEfternavn &"', '"&strStilling &"', '"& strBeskrivelse &"', '"& strBillede &"' )"
      Conn.Execute(strSQL)

      Conn.Close
      Set Conn = Nothing   

      Const MINPIXELS = 100

      '*** creat thumbnail image
    Set Image = Server.CreateObject("AspImage.Image")
    Image.LoadImage(Server.MapPath("../gallery/temp/"&File.ExtractFileName))
         
    ImageHeight = Image.MaxY
    ImageWidth = Image.MaxX

      '*** calculate aspect ratio based on MINPIXELS
    If ImageHeight > ImageWidth Then
        NewHeight = Cint(ImageHeight*MINPIXELS/ImageWidth)
        NewWidth = MINPIXELS
      Else
        NewWidth = Cint(ImageWidth*MINPIXELS/ImageHeight)
        NewHeight = MINPIXELS
      End If
    Set objImageSize = Nothing

    Image.FileName = Server.MapPath("../gallery/personale/"&File.ExtractFileName)
    Image.ImageFormat = 1
    Image.JPEGQuality = 100
    Image.Resize NewWidth,NewHeight
    Image.FloodFill NewWidth, NewHeight, vbBlack, 1
    Image.SaveImage
    Set Image = Nothing

    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    If  fso.FileExists(Server.Mappath("../gallery/temp/"&File.ExtractFileName)) Then
        fso.DeleteFile (Server.Mappath("../gallery/temp/"&File.ExtractFileName))
   
    End if
       
    else
    ' længden af indholdet af File.Path er MINDRE end 0   
    ' dvs: der står IKKE noget i File.Path
   
      strFornavn = Upload.form("fornavn")
      strEfternavn = Upload.form("efternavn")
      strStilling = Upload.form("stilling")
      strBeskrivelse = Upload.form("beskrivelse")
           
      strSQL = "INSERT INTO Personale(fornavn, efternavn, stilling, beskrivelse) VALUES('"& strFornavn &"','"& strEfternavn &"', '"&strStilling &"', '"& strBeskrivelse &"')"
      Conn.Execute(strSQL)   

      Conn.Close
      Set Conn = Nothing
 
  end if
 
  Next

End if
 
  'Response.Redirect("Personale.asp")

%>
Avatar billede thesurfer Nybegynder
18. december 2003 - 04:01 #7
Dette spørgsmål mangler input.
Det kan f.eks. være at spørgeren mangler at acceptere/afvise svar/komme med feedback, eller af en svarer mangler at lægge et svar/komme med feedback.
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