28. februar 2012 - 18:02Der er
6 kommentarer og 1 løsning
upload fejl ved gem i db?
Denne kode resize og giver foto nyt navn, gemmer også i mappen upload, virker fint, men når jeg gemmer fotonavn i db, gemmes det oprindelige fotonavn, ikke det nye navn. Hvad har jeg gjort galt?
<% nynavn=request("brugernavn")
function resize(sti,navn,nyX) Set objImg = Server.CreateObject("AspImage.Image") objImg.PadSize = 0 objImg.LoadImage Server.MapPath(sti & navn) objImg.GetImageFileSize Server.MapPath(sti & navn), X, Y
ResizedX = nyX objImg.MaxX = X objImg.MaxY = Y
strNavn = nynavn
if X > ResizedX then ResizedY = (ResizedX / objImg.MaxX) * objImg.MaxY objImg.ResizeR ResizedX, ResizedY objImg.FileName = (Server.MapPath(sti & strNavn)) objImg.SaveImage end if
Set objImg = Nothing
' Opretter objekt til sletning (FSO) Set FsoObj = Server.CreateObject("Scripting.FileSystemObject")
' Angiver sti til billede strSource = Server.Mappath(sti & navn)
' Tjekker om filen eksisterer If FsoObj.FileExists(strSource) Then FsoObj.DeleteFile(strSource) ' Sletter filen - hvis den eksisterer End if
' Rydder objekt Set FsoObj = Nothing
end function %>
<!--#include file="conn.asp"-->
<%
Dim mySmartUpload Dim file1
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.Upload
For each file1 In mySmartUpload.Files
If not file1.IsMissing Then
file1.SaveAs("/upload/" & file1.FileName)
call resize("/upload/",file1.FileName,100)
'gemmer i db session("foto")=file1.FileName
SQL = "UPDATE bruger SET brugerfoto ='" & session("foto") & "' WHERE brugernavn='" & nynavn & "'" Conn.Execute(SQL)
Fordi du sætter din session til at være lig med file1.FileName og ikke hvad du ellers måtte generere af navn.
Synes godt om
Slettet bruger
28. februar 2012 - 19:21#2
ja, det er rigtigt, det var også min fornemmelse. Men så kommer jeg i tvivl, for filnavnet som gemmes i mappe upload er jo korrekt, så skal jeg op i objmg.filename og hente navnet der, inden foto bliver upload?
Umiddelbart har du en masse rod i hvad variabler, sessions osv er og det gør det svært at gennemskue - så vidt jeg kan se bliver filnavn = nynavn = request("brugernavn") så du kan vel bare bruge den variabel hele vejen.
Synes godt om
Slettet bruger
28. februar 2012 - 22:56#4
jeg vil forsøge at løse rode og lade høre fra mig igen:-)
Synes godt om
Slettet bruger
29. februar 2012 - 08:06#5
Det er gået op for mig, at alle filer som bliver omdøbt får også ændret format fra f.eks. .jpeg til .jpg . Andre formater kan AspImage ikke klare, og derfor kan jeg nøjes med at lægge brugernavn i db under brugerfoto og tilføje .jpg. Så er den klaret, ikke optimalt, men problemet er løst. Keysoerzone, smid et svar, det var dit indlæg som førte mig til denne halve løsning.
min nye kode herunder, hvis andre kan bruge den.
<%
strNavn=request("brugernavn")
function resize(sti,navn,nyX) Set objImg = Server.CreateObject("AspImage.Image") objImg.PadSize = 0 objImg.LoadImage Server.MapPath(sti & navn) objImg.GetImageFileSize Server.MapPath(sti & navn), X, Y
ResizedX = nyX objImg.MaxX = X objImg.MaxY = Y
if X > ResizedX then ResizedY = (ResizedX / objImg.MaxX) * objImg.MaxY objImg.ResizeR ResizedX, ResizedY objImg.FileName = (Server.MapPath(sti & strNavn)) objImg.SaveImage end if
'smider brugernavn i db og tilføjer .jpg SQL = "UPDATE bruger SET brugerfoto ='" & strNavn & (".jpg") & "' WHERE brugernavn='" & strnavn & "'" Conn.Execute(SQL)
Set objImg = Nothing
' Opretter objekt til sletning (FSO) Set FsoObj = Server.CreateObject("Scripting.FileSystemObject")
' Angiver sti til billede strSource = Server.Mappath(sti & navn)
' Tjekker om filen eksisterer If FsoObj.FileExists(strSource) Then
FsoObj.DeleteFile(strSource) ' Sletter filen - hvis den eksisterer End if
' Rydder objekt Set FsoObj = Nothing
end function %>
<%
Dim mySmartUpload Dim file1
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
Der er nogle licensbetingelser om i hvert fald nogle gif-formater men hvad aspimage totalt set understøtter skal jeg ikke gøre mig klog på. Men grunden til at aspimage omdøber dine filendelser er formentlig fordi du ikke selv sætter den på når du bestemmer filnavnet som du gør når du lægger den i databasen.
Synes godt om
Slettet bruger
01. marts 2012 - 19:38#7
det vil jeg kigge nærmere på, dette licens-halløj, men du skal i hvert fald have mange tak for hjælpen.
Synes godt om
Ny brugerNybegynder
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.