Avatar billede Slettet bruger
28. juni 2009 - 19:43 Der er 5 kommentarer og
1 løsning

Variabel i filnavn

Hej.
Jeg har et script hvor jeg uploader et foto til min server, samt tilføjer en kategori og tekst til min database.
Derefter laver den et thumbnail af billedet hvor "orginal navn" til "small_orginalnavn". Problemet er at jeg selv hver gang skal indsætte filnavnet i strBilledeKilde og StrNytBillede som ses herunder. Jeg vil meget gerne have indsat en variabel med filnavnet fra filen jeg uploader ind så det skaer automatisk.

Håber der er nogen der kan hjælpe mig. (Det er til svigefars hjemmeside, så der er point er at hente.. hehe) :-)

SÅDAN HER SER DET NU NU HVOR JEG SELV SKAL ÆNDRE FILNAVNET:
strBilledKilde = "/myimages/orginalfoto.jpg"
strNytBillede = "/myimages/small_orginalfoto.jpg"

KAN MAN IKKE LAVE NOGET SOM FØLGENDE:
strBilledKilde = "/myimages/"mySmartUpload.Files.Item("File1").FileName".jpg"
strNytBillede = "/myimages/small_"mySmartUpload.Files.Item("File1").FileName".jpg"

Håber i kan hjælpe.

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file1
  Dim file2
  Dim oConn
  Dim oRs
  Dim intCount
  intCount=0
  Session.LCID = 1030     
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
 
'  Upload
'  ******
  mySmartUpload.Upload
  intCount = mySmartUpload.Save("/myimages")

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("\db\hyggedatabase.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

'  Open a recordset
'  ****************
  strSQL = "SELECT * FROM seneste"

  Set oRs = Server.CreateObject("ADODB.recordset")
  Set oRs.ActiveConnection = oConn
  oRs.Source = strSQL
  oRs.LockType = 3
  oRs.Open

      '  Add the current file in a DB field
      '  **********************************
        oRs.AddNew
        oRs("pic") = mySmartUpload.Files.Item("File1").FileName
        oRs("billedekategori") = mySmartUpload.form("kategori")
        oRs("beskrivelse") = mySmartUpload.form("overskrift")
        oRs("powerpoint") = "Name"
        oRs("visnyhed") = 3
       
        oRs.Update
        intCount = intCount + 1

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")


Dim objImage ' Definer en variabel til objektet

' HER STARTER THUMBNAIL FUNKTION SCRIPTET
Dim strBilledKilde
Dim strNytBillede
Dim intXSize
Dim intYSize

' Angiv hvor vores billed kilde befinder sig
strBilledKilde = "/myimages/orginalfoto.jpg"
' Til dette eksempel må benyttes: JPG, PNG og BMP

' Angiv hvor det nye billede skal gemmes
' og hvad det skal hedde
strNytBillede = "/myimages/small_orginalfoto.jpg"

' Opret objektet så vi kan arbejde med det
Set objImage = Server.CreateObject("AspImage.Image")

' Indlæs en kopi af vores oprindelige billede
objImage.LoadImage(Server.MapPath(strBilledKilde))

' Den nye bredde på billedet skal være 75 prikker
intXSize = 75

' Her beregner vi så hvor højt billedet skal være
' ud fra den bredde vi har bestemt
intYSize = (intXSize / objImage.MaxX) * objImage.MaxY

' Så ændrer vi størrelsen på billedet
objImage.ResizeR intXSize, intYSize


' Så angiver vi hvor vi vil gemme det nye billede
objImage.FileName = Server.MapPath(strNytBillede)

' Vi prøver på at gemme det nye billede, men vil
' gerne have at vide hvis noget gik galt ...
If objImage.SaveImage Then
  ' Det lykkedes at gemme det nye billede,
  ' så lad os vise det ...
  Response.Write "<img src=""" & strNytBillede & """><br>"
Else
  ' Et eller andet gik galt ...
  Response.Write "Der opstod en fejl : " & objImage.Error
End If

' Vi er færdige, så vi rydder pænt op efter os
Set objImage = Nothing




'  Destruction
'  ***********
  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
Avatar billede ebusiness Nybegynder
28. juni 2009 - 20:53 #1
KAN MAN IKKE LAVE NOGET SOM FØLGENDE:
strBilledKilde = "/myimages/"mySmartUpload.Files.Item("File1").FileName".jpg"
strNytBillede = "/myimages/small_"mySmartUpload.Files.Item("File1").FileName".jpg"

Du mangler strengsammenkædningsoperatoren, den er i ASP så vidt jeg har kunnet læse mig til &. Så:

strBilledKilde = "/myimages/" & mySmartUpload.Files.Item("File1").FileName & ".jpg"
strNytBillede = "/myimages/small_" & mySmartUpload.Files.Item("File1").FileName & ".jpg"
Avatar billede Slettet bruger
29. juni 2009 - 08:44 #2
Det var lige præcis sådan noget jeg ville frem til.. :-)

Den kommer godt nok med en fejl nu...


Microsoft VBScript runtime error '800a000b'

Division by zero

/u/uploadbillede1.asp, line 165

Det er følgende:

intYSize = (intXSize / objImage.MaxX) * objImage.MaxY

Hvad går der galt her?
Avatar billede Slettet bruger
29. juni 2009 - 09:19 #3
Filen bliver uploaded, så det er ikke fordi der ikke er nogen fil med....  Er det ikke fordi indholdet af en af variablerne er tomme??
Avatar billede Slettet bruger
29. juni 2009 - 09:25 #4
Og det skal lige siges at det virker fint hvis jeg ikke har ændret det til de ting du skrev, har lige testet det.. :-) Så det må jo være noget med den fil der går galt, at den ikke finder en fil går jeg ud fra?
Avatar billede Slettet bruger
29. juni 2009 - 09:34 #5
Fandt fejlen.. :-)
Det var fordi der ikke skulle være .jpg med da det var i filnavnet..

Men mange tak for hjælpen og send bare svar... :-)

Mvh.
Henrik
Avatar billede ebusiness Nybegynder
29. juni 2009 - 11:32 #6
Jeg har sådan set svaret, systemet er vist at man markerer sit indlæg som svar når man mener at det er et svar på spørgsmålet. At der så er nogen som først læggeret svar når de bliver bedt om det kan jeg jo ikke gøre for.
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