Avatar billede mekaniker Nybegynder
28. januar 2002 - 12:43 Der er 5 kommentarer og
1 løsning

"Omvendt" problem, don't upload

Jeg har dette script til upload af billeder og insættelse af data i en access db.

Hvordan får jeg dette til at lade være med at uploade billedet(filen), hvis billedet er for stort, forkert type eller for bredt/højt
n sagtens få mine if statements til at virke men den uploader filen uanset hvad.

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.open "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("../../db/varer.mdb")&";"

    Set Upload = Server.CreateObject("Persits.Upload.1")

      Upload.OverwriteFiles = false
      'Upload.SetMaxSize 300000, True
      Upload.SaveVirtual ("../../images/annoncer")     
'----------------------------------------------------------
stor = upload.form("stor")
stor = Replace(stor, "'", "''")

dato = upload.form("dato")
ind = upload.form("ind")
forh = upload.form("forh")

if isNumeric(forh) = false then forh = 0
if isNumeric(ind) = false then ind = 0

'---------------------------------------------------------------------------
If IsEmpty(upload.form("varenr")) or upload.form("varenr")="" then
    response.redirect "ny_annonce.asp?overskrift=" & upload.form("overskrift") &"&ud=" & upload.form("ud") &"&anno=varenr"
Else
    varenr = upload.form("varenr")
    varenr = Replace(varenr, "'", "''")

       
If IsEmpty(upload.form("overskrift")) or upload.form("overskrift")="" then
    response.redirect "ny_annonce.asp?varenr=" & upload.form("varenr") &"&ud=" & upload.form("ud") &"&anno=overskrift"
Else
    overskrift = upload.form("overskrift")
    overskrift = Replace(overskrift, "'", "''")


If IsEmpty(upload.form("ud")) or upload.form("ud")="" then
        response.redirect "ny_annonce.asp?varenr=" & upload.form("varenr") &"&overskrift=" & upload.form("overskrift") &"&anno=ud"
    Else
        ud = upload.form("ud")
'---------------------------------------------------------------
billed = Upload.Form("billed")
Set billed = Upload.Files("billed")

    If billed is nothing Then
        Pic = ""
    Else
        Pic = billed.ExtractFileName
    End if
   
    If billed.ImageType <> "GIF" and billed.ImageType <> "JPG" Then
        response.redirect "ny_annonce.asp?varenr=" & upload.form("varenr") &"&overskrift=" & upload.form("overskrift") &"&ud=" & upload.form("ud") &"&format=" & billed.ImageType &"&billed=type"
  End if
 
    If billed.ImageWidth > 150 or billed.ImageHeight > 150 Then
        response.redirect "ny_annonce.asp?varenr=" & upload.form("varenr") &"&overskrift=" & upload.form("overskrift") &"&ud=" & upload.form("ud") &"&bredde=" & billed.ImageWidth &"&billed=bredde"
End if       

    If billed.OriginalSize > 300000 Then
        response.redirect "ny_annonce.asp?varenr=" & upload.form("varenr") &"&overskrift=" & upload.form("overskrift") &"&ud=" & upload.form("ud") &"&stoerrelse=" & billed.ImageWidth &"&billed=stoerelse"
End if


      strSQL = "Insert into annonce (varenr, varebeskrivelse, indkoebspris_excl_moms, forhandlerpris_excl_moms, udsalgspris_incl_moms, stor_beskrivelse, billedfil, oprettet, redigeret) " &_
      "values('" & varenr & "','" & overskrift & "'," & ind & "," & forh & ",'" & ud & "','" & stor & "','" & pic & "',#" & dato & "#,#" & dato & "#)"
      myConn.Execute(strSQL)


End if
End if
End if
myconn.close
Set myconn = Nothing
Set strSQL = Nothing
response.redirect ("annoncer.asp")
%>
Avatar billede nogetfx Nybegynder
28. januar 2002 - 12:46 #1
Lytter med..
Avatar billede coltau Juniormester
28. januar 2002 - 14:00 #2
Det var lige vand på min mølle. Vi har en løbende diskussion om at bruge komponenter eller ej og jeg mener at alt hvad man kan lave selv skal man lave selv. Også selvom at man måske kommer til at opfinde den dybe tallereken et par gange og at det tager længere tid. MEN man kan altid rette evt. fejl og altid ændre funktionaliteten. Det kan man ikke altid når man anvender komponenter.

I øvrigt mener jeg ikke at du kan undgå upload af billedet - da indholdet af alle felter automatisk medsendes fra klienten.
Så selvom du selv kunne rettet i upload-komponenten så kan du ikke undgå det.

Måske kan denne kontrol udføres af en javascriptkode, der blanker file-feltet inden submit. ?
Avatar billede goose Nybegynder
28. januar 2002 - 15:40 #3
Nedenstående checker om den uploadede fil fylder mere end 30kb, eller om højden er mere 500 pixels eller om bredden er mere end 250 pixels. Hvis det er tilfældet, slettes filen igen og der redirectes til en fejlside, ellers fortsætter den bare, og det virker sammen med ASPupload.

If Not Upload.Files("foto") Is Nothing then
if Upload.Files("foto").size>30000 or Upload.Files("foto").imageheight>500 or Upload.Files("foto").imagewidth>250 then
Upload.Files("foto").delete
response.redirect("default.asp?action=fejl&kode=1")
else
end if
end if

/Goose
Avatar billede coltau Juniormester
28. januar 2002 - 16:28 #4
Ja - men uploader den filen i hukommelsen inden kontrollen kan udføres. ?
Avatar billede goose Nybegynder
28. januar 2002 - 16:39 #5
Den uploader først til serveren, checker filen, og sletter hvis den ikke opfylder betingelserne.

/Goose
Avatar billede mekaniker Nybegynder
01. maj 2002 - 19:34 #6
Undskyld den lange ventetid, men jeg har brugt goose løsning, da jeg ikke selv kunne finde noget bedre.

Tak for hjælpen.

//Mekaniker
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