webForumDet fria alternativet

Aspjpeg, inläggning databas.

ASP

2 svar · 331 visningar · startad av SannyW

Medlem sedan jan. 2003438 inlägg
Frågan#1

Har nedanstående kod, har problem med att lägga in värde i databasen.

Får fel:

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

För att berätta var jag försöker få ut, oftast har jag en grund bild som är 1600x1200, vill då förminska den vid upload till 400x300 genom att dela med 4. Tar bort "grundfilen" då formatet 1600x1200 inte behövs.

Sedan vill jag kunna använda den nya bilden då jag i portfolion tänkte gör thumbnail i browsern och på så vis få önskad storlek.

Någon kan se var jag gör fel? Synpunkter pä tanke fel är också välkomna...

<%
'// Create an instance of AspUpload object
Set Upload = Server.CreateObject("Persits.Upload")

'// An option i overwright or not True/False
Upload.OverwriteFiles = True

'// Limit file size to 3000000 bytes, throw an exception if file is larger
Upload.SetMaxSize 3000000, True

'// Intercept all exceptions to display user-friendly error
'On Error Resume Next	

'// Compute path to save uploaded files to
Path = Server.MapPath("upload/jpeg/")

'// Capture uploaded file and saves it. Return the number of files uploaded
'// When not adding (Path) then you save file to memory.
'Count = Upload.Save(Path) 
Count = Upload.Save 

'// 8 is the number of "File too large" exception
If Err.Number = 8 Then
 Response.Write "Filen är för stor. Var god försök igen."
Else

  If Err <> 0 Then
    Response.Write "An error occurred: " & Err.Description
  Else

    If Count = 0 Then
      Response.Write "Ingen bild vald."
      Response.End
    Else
      '// Obtain File object representing uploaded file
      Set File = Upload.Files(1)

      '// Is this a valid image file?
      If File.ImageType <> "UNKNOWN" Then

    	'// Create instance of AspJpeg object
    	Set jpeg = Server.CreateObject("Persits.Jpeg")

    	'// Open uploaded file
	'// When use of (File.Path) you collect the file from disk, (File.Binary) from memory.
    	'// jpeg.Open( File.Path )
    	 jpeg.OpenBinary( File.Binary )

    	'// Resize image according to "scale" option.
    	'// We cannot use Request.Form, so we use Upload.Form instead.

	'// If use of Ratio then only option width or height
	'// Jpeg.PreserveAspectRatio = True

	'// Set the quality of the image, 0-100. (set to 80 by default)
	Jpeg.Quality = 50

	'// Image Sharpening 
	'// The Sharpen method uses two Double arguments: Radius and Amount. Radius controls the size (in pixels) 
	'// of an area around every pixel that the sharpening algorithm examines. This argument should normally be 
	'// set to 1 or 2. Amount (expressed in %) specifies the degree of sharpness. This argument must be greater than 100.
	Jpeg.Sharpen 1, 120

    	'// Decrease image size 1/4	
    	  Jpeg.Width = Jpeg.OriginalWidth / 4
    	  Jpeg.Height = Jpeg.OriginalHeight / 4

    	SavePath = Path & "small_" & File.ExtractFileName

    	'// AspJpeg always generates thumbnails in JPEG format.
    	'// If the original file was not a JPEG, append .JPG ext.
    	If UCase(Right(SavePath, 3)) <> "JPG" Then
          SavePath = SavePath & ".jpg"
        End If

    	'// Here the new file saves
    	jpeg.Save SavePath

    	'// Start saving to database
        strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("aspjpeg.mdb")

        Set rs = Server.CreateObject("adodb.recordset")
        rs.Open "images", strConnect, 1, 3
        rs.AddNew

        '// Use File.Binary to access binary data of uploaded file.
        ' rs("image_blob").Value = File.Binary
    '   Set ThumbFile = Upload.OpenFile(SavePath)
    '   rs("filename").Value = ThumbFile.Binary
        'rs("description") = Upload.Form("Description")
        rs.Update
        rs.Close
        Set rs = Nothing   

	Response.Write "Bilden är godkänd."
	Response.Write "<br>"
        Response.Write ".detaljer sparade i databasen."
	Response.Write "<br>"  
        Response.Write "<a href='upload.asp'>Gå tillbaka</a>"
        
      Else
        Response.Write "Detta är inte en godkänd bild."
        Response.End
      End If
    End if
  End If
End If
%>

/r
Har lagt in förändringar och uppdaterat koden så att orginalfilen läggs i minnet istället för på disk.

Medlem sedan juni 200032 967 inlägg
#2

Jag har inte kollat din kod, men kontrollera så du inte i tabellen har obligatoriska fält, som du inte sätter något värde i.

Varför vill du spara bilderna i databasen?

Medlem sedan jan. 2003438 inlägg
#3
  1. Jag gick tillbaka ett steg och plockade bort de olika "kolumnerna" och körde på Add.New och Update. Och visst uppdateras en rad då.

  2. Varför vill du spara bilderna i databasen?

Ja, bra fråga. Men i allt läsade så fick jag uppfattningen om det var det bästa sättet. Alltså att spara en huvudbilds inställningar i databasen och sedan använda dessa uppgifter då man sedan utförde thumbnails förminskning vid utskrift från databasen.

Vad rekommenderas?

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)