Just nu i M3-nätverket
Gå till innehåll

Ändra storleken och spara en bild i databas med SA Fileup?


Mattoh

Rekommendera Poster

Jag har försökt att lösa detta lilla problem själv men förstår mig inte på SA Fileup 5.0 Standard riktigt.

 

Jag har en hemsida där man via ett formulär skall kunna ladda upp bilder. Tyvärr är det en del okunniga som laddar upp bilder där ibland vilket gör att de ibland laddar upp VÄLDIGT STORA bilder. För att slippa detta tänkte jag skala om bilderna innan jag sparar dem i databasen, hur gör jag detta?

 

Som det är nu har jag fuskat lite. Jag sparar bilderna i databasen men sedan när de skall visas skalar jag ner dem. Detta leder dock till att databasen ganska snart blir väldigt stor.

 

Mitt formulär finns i sidan fileForm.asp och själva sparandet av bilden till databasen finns i filen uploadFileScript.asp.

 

Finns det någon som kan hjälpa mig?

 

Tack på förhand

.Mattoh

 

Länk till kommentar
Dela på andra webbplatser

Jag kan ingenting om detta men rent spontant går det inte sätta en begränsning på filstorleken istället, som här på forumet? Gör ju saken enklare för dig i alla fall.:)

Milla

 

Den som uppfann arbetet måste inte ha haft någonting att göra.

 

Länk till kommentar
Dela på andra webbplatser

Jo, det har du rätt i. Jag kan begränsa filstorleken på ett ganska enkelt sätt, problemet är bara att användarna av hemsidan är ganska kassa på allt vad bildbehandling heter. De kommer bli irreterade om de inte kan ladda upp bilder och dessutom inte kunna göra bilderna mindre själva för att sedan ladda upp dem.

 

Men ditt förslag kan ju vara en bra början. Tack!

 

.Mattoh

 

Länk till kommentar
Dela på andra webbplatser

Jag kan begränsa filstorleken på ett ganska enkelt sätt, problemet är bara att användarna av hemsidan är ganska kassa på allt vad bildbehandling heter. De kommer bli irreterade om de inte kan ladda upp bilder och dessutom inte kunna göra bilderna mindre själva för att sedan ladda upp dem.

 

Liten hjälpfil för t.ex paint.

Så otåliga kan de väl inte vara:)

 

 

Milla

 

Den som uppfann arbetet måste inte ha haft någonting att göra.

 

Länk till kommentar
Dela på andra webbplatser

Det är inte så att du har tillgång till någon image component? Med SA Fileupload tror jag inte du kan göra det du vill göra. Har du tillgång till ImageGlue el. liknande kan du skala ner bilderna och göra en massa andra härliga saker.

/H

 

Länk till kommentar
Dela på andra webbplatser

Har kollat om det finns någon image component och det finns det. w3Image 2.0 heter den och det går att läsa om den här: http://www.dimac.net.

 

Vet att jag har försökt använda denna komponenten tidigare utan att lyckas. Skall se om jag hittar något bra exempel, har för mig att problemet den gången var något liknande som jag har idag.

 

.Mattoh

 

Länk till kommentar
Dela på andra webbplatser

Jag tror att det är rätt väg att gå!

Efter en snabbkoll i referensen så verkar det som att det skulle fungera att ladda in en bild skala om och spara.... Men jag har bara skummat det hela..

Lycka till

/H

 

Länk till kommentar
Dela på andra webbplatser

  • 5 months later...

Nu är det längesedan jag hade problemet med att skala om bilder och sedan spara dem i databasen, anledningen är att jag fuskade och endast skalade om bilden innan den visades på hemsidan och så var det problemet löst tillfälligt.

 

Nu visar det sig, som jag redan visste, att detta inte är hållbart i längden så nu måste jag verkligen få detta till att fungera. Om jag skall vara helt ärlig förstår jag inte speciellt mycket av dokumentationen till w3image och förstår ännu mindre hur jag skall kunna kombinera denna komponent med SA Fileup.

 

Finns det något vänligt helgon där ute som har några rader med kod till mig? Det är ASP som gäller.

 

.Mattoh

 

Länk till kommentar
Dela på andra webbplatser

  • 3 years later...

Hej

Har du löst detta nu eller?

 

Jag har precis samma problem och tror också att det är en image component som är lösningen.

 

Jag arbetar också med ASP

 

 

 

Länk till kommentar
Dela på andra webbplatser

Helt korrekt att det behövs en bildkomponent.

Det första du kan göra dock är att begränsa filstorleken som laddas upp till, säg 200kB. Om detta inte räcker kan du använda dig av kompnenter som w3Image, ASPImage, ImageGlue(tror jag den heter), för att skala om bilden om den överskrider en viss bredd eller höjd och sedan spara.

 

Komponenterna kostar dock lite, men om du har konto på webbhotell brukar de ha någon sorts bildkomponent installerat på servern som du kan använda.

 

Länk till kommentar
Dela på andra webbplatser

Mitt webbhotell som heter Loopia tillhandahåller Presits Upload som har en image-funktion också.

Ska snart studera den och återkommer om jag lyckas med att få den att funka.

 

Länk till kommentar
Dela på andra webbplatser


'I detta fall heter upload formuläret "thefile"

Set oFileUp = Server.CreateObject("SoftArtisans.FileUp")
oFileUp.Path = Server.MapPath("upload") & "\"


NewWidth = 400 'bredden eller om du vill skicka via ett formulär = oFileUp.Form("DinBredd")

		If IsObject(oFileUp.Form("thefile")) Then
			If Not oFileUp.Form("thefile").IsEmpty Then
				On Error Resume Next
					oFileUp.Form("thefile").Save

					If Err.Number <> 0 Then
						Response.Write "<B>Ett fel inträffade!</B><BR>" & _
										Err.Description & " (" & Err.Source & ")"
						Response.End
					End If

				On Error Goto 0

				thefile = oFileUp.Form("thefile").ShortFilename


							NewFilename = thefile
							NewFilenameLength = len(NewFilename)
							NewFileExtPos = InstrRev(NewFilename,".")
							NewFileExt = right(NewFilename,NewFilenameLength-NewFileExtPos)
							NewFilename = Replace(Replace(Replace(Replace(Now(),"/",""),"-","")," ",""),":","") & "." & NewFileExt

							theNewFilename = NewFilename

'
							Set oImg = Server.CreateObject("W3Image.Image")
							res = oImg.LoadImage(oFileUp.Path & thefile)

							maxW = NewWidth
							iHeight = oImg.Height
							iWidth = oImg.Width

							NewWidth = iWidth/(iHeight/maxW)
							If iWidth > NewWidth then
							oImg.Stretch NewWidth, maxW,"super"
							End if

							res = oImg.SaveImage(oFileUp.Path& theNewFilename,"JPG", 24)


								'Ta bort gamla filen
								Set fs=Server.CreateObject("Scripting.FileSystemObject") 
								if fs.FileExists(oFileUp.Path & thefile) then
								  fs.DeleteFile(oFileUp.Path & thefile)
								end if
								set fs=nothing



							Set oImg = Nothing

                               '--------------------------------------------------
                               'Här gör du insert ui db
                               'theNewFilename = filnamn
                               '--------------------------------------------------



			Else
				Response.write "Ingen bild laddades upp."
                   response.End()
			End If
		Else
			Response.write "Bilden finns inte, eller är korrupt"
               response.End()
		End If


Set oFileUp = Nothing

'Response.Redirect("dinsida.asp")

 

Länk till kommentar
Dela på andra webbplatser

Ja, och i manualen kan man läsa detta:

För att skapa ikoner gör så här:

<% 
' Create instance of AspJpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' Open source image
Jpeg.Open "c:\path\myimage.jpg"

' New width
L = 100

' Resize, preserve aspect ratio
Jpeg.Width = L
Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth

' create thumbnail and save it to disk
Jpeg.Save "c:\path\thumbnail.jpg"

%> 

 

Problemet är att jag vet inte hur jag ska "grabba" filen (filnamnet) för att sedan förminska den och till slut hur jag ska spara den i en databas.

 

 

Länk till kommentar
Dela på andra webbplatser

Typ detta borde fungera...

 



MinaFiler = Server.MapPath("uploadmappen")

Set Upload = Server.CreateObject("Persits.Upload")
Count = Upload.Save(MinaFiler)
Filnamn = File.Name


' Create instance of AspJpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' Open source image
Jpeg.Open MinaFiler & "/" & Filnamn

' New width
L = 100

' Resize, preserve aspect ratio
Jpeg.Width = L
Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth

' create thumbnail and save it to disk
Jpeg.Save MinaFiler & "/" & "thumb_" & Filnamn



 

Länk till kommentar
Dela på andra webbplatser

Jag får felmedd. för rad 16

Filnamn = File.Name

 

Microsoft VBScript runtime error '800a01a8'

 

Object required: ''

 

/admin/test/test2.asp, line 16

 

Länk till kommentar
Dela på andra webbplatser

Ja, nu fungerar det, verkar det som

Fast jag vill lägga till en index till slutet av filnamnet så här:

 

Original: image.asp

liten bild: image2.asp

ikonbild: image3.asp

 

hur gör jag utan att ta bort .asp ?

 

tack

 

Länk till kommentar
Dela på andra webbplatser

Du menar antar jag .jpg och inte .asp?

 

Hur som haver, vill du tex byta ett namn från - till..

 

"HejHopp.jpg" till "HejHopp2.jpg" är enklaste sättet att göra så här..

 

Filename = Replace(Filename,".jpg","2.jpg")

 

Osv osv...

 

Länk till kommentar
Dela på andra webbplatser

Självklart menar jag .JPG och inte .ASP :-P

jag får väl skylla på trötthet ;)

 

och tack för tipset ... ska strax prova det

 

Länk till kommentar
Dela på andra webbplatser

Jag sparar istället i varsin mapp vilka heter:

 

mellanBilder

miniBilder och

mikroBilder

 

Nu ska jag försöka kapa av bilderna så de blir kvadratiska, tror jag det går i samma veva

 

återkommer med resultat ...

 

Länk till kommentar
Dela på andra webbplatser

Mattoh vet jag inte men för mig gick det bra.

Jag kan förminska dem och i samma veva även kapa av (crop) kanten så det blir kvadratiska.

Nu ska jag bara lägga till dem i databasen också.

 

Tackar alla för deras hjälp! :thumbsup:

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...