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?
2 svar · 331 visningar · startad av SannyW
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.
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?
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å.
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?