27. november 2002 - 20:51Der er
10 kommentarer og 1 løsning
aspsmartupload - tekst og billed
Er der nogen der kan hjælpe med dette script. Fra en form bliver to felter med tekst samt en fil sendt til serveren. Teksten samt en sti til billedet skal ligges i en database.
Som et ekstra spørgsmål, kan aspsmartupload gemme filen under et nyt navn hvis det i forvejen eksistere eller anden løsning. I så fald må du gerne skrive løsningen på dette med.
Nedenstående kode har jeg begyndt med, men jeg ved ikke hvilke kommandoer man kan bruge sammen med aspsmartupload. Har kigget lidt på deres hjemmeside.
<% ' Variables ' ********* Dim mySmartUpload Dim file Dim intCount intCount=0
' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Upload ' ****** mySmartUpload.Upload
' Select each file ' **************** For each file In mySmartUpload.Files ' Only if the file exist ' ********************** If not file.IsMissing Then ' Save the files with his original names in a virtual path of the web server ' ****************************************************************************
'file.SaveAs("/../konkurrence" & file.FileName) ' sample with a physical path file.SaveAs("e:\kunder\ramsoe-usk.dk\konkurrence\" & file.FileName)
' Select each item ' **************** For each item In mySmartUpload.Form ' Select each value of the current item ' ************************************* For each value In mySmartUpload.Form(item) 'Tilføjer brugeren til databasen Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "select * from konkurrence" rs.Open strsql, conn, 1, 3
'Tilføjer brugeren til databasen og sender ham/hende til login siden rs.AddNew rs("Overskrift") = " & value & " rs("Teaser") = " & value & " rs("Url") = file.FileName rs("Dato") = Now() rs.update
intCount = intCount + 1 Response.Write(item & " = " & value & "<BR>") Next Next End If ' Display the number of files which could be uploaded ' *************************************************** Response.Write("<BR>" & mySmartUpload.Files.Count & " files could be uploaded.<BR>")
' Display the number of files uploaded ' ************************************ Response.Write(intCount & " file(s) uploaded.<BR>") %>
' Select each item ' **************** For each item In mySmartUpload.Form ' Select each value of the current item ' ************************************* For each value In mySmartUpload.Form(item) 'Tilføjer brugeren til databasen Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "select * from konkurrence" rs.Open strsql, conn, 1, 3
'Tilføjer brugeren til databasen og sender ham/hende til login siden rs.AddNew rs("Overskrift") = " & value & " rs("Teaser") = " & value & " rs("Url") = file.FileName rs("Dato") = Now() rs.update
intCount = intCount + 1 Response.Write(item & " = " & value & "<BR>") Next Next
Det kan gøres sådan her:
'Tilføjer brugeren til databasen Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "select * from konkurrence where id=0" 'id skal være namet på din autonummer kolonne rs.Open strsql, conn, 1, 3
'Tilføjer brugeren til databasen og sender ham/hende til login siden rs.AddNew rs("Overskrift") = mySmartUpload.Form("navnet_på_Overskrift_feltet_på_formen") rs("Teaser") = mySmartUpload.Form("navnet_på_Teaser_feltet_på_formen") rs("Url") = file.FileName rs("Dato") = Now() rs.update
Som det er nu hvor database delen gemmer inde i isMissing if sætning vil den kun gemme de to tekste hvis der er et billede med.
Mht overskrivning og ASPsmartupload, så mener jeg ikke ASPsmartupload selv kan lave et nyt navn til files hvis den findes så du må selv lave noget med FileSystemObject som tjekker på om filnavnet findes og hvis det gør laver et nyt filnavn..
Jeg har engang lavet dette som giver uploaded filer navnet imageXXX.jpg, måske det kan hjælpe dig lidt på vej:
strTargetPath = "/images" i = 1 do while (objFSO.FileExists(server.mappath(strTargetPath) & "/image" & i & ".jpg")=true) i = i + 1 loop newFileName = "image" & i & ".jpg"
eagleeye>>> Tak for det. Der er bare en ting jeg ikke kan gennemskue i dette med at omdøbe. Når jeg indsætter siger den at en " er obligatorisk i linien med do while sætningen.
strTargetPath = "../konkurrence" i = 1 do while (objFSO.FileExists(server.mappath(strTargetPath) & "/image" & i & ".jpg")=true) i = i + 1 loop newFileName = "image" & i & ".jpg"
Jeg tror sgu ikke jeg kan gemme i den mappe på serveren. Det forstår jeg ikke det har jeg gjort før. Nå det må jeg jo undersøge med udbyderen i morgen. Jeg tvivler ikke på at din kode ikke virker.
Du skal havde skriverettigheder i den folder du uploader til. Nomalt har man ikke det automatisk i alle web-folderne på et web-hotel men i en speciel folder. Alternativt kan du kontakte web-hotellet og spørge om de vil give skriverettigheder til den folder du ønsker billerne gemt i.
Fandt fejlen, den kunne ikke lide server.mappath så skrev sådan her: Set objFSO = Server.CreateObject("Scripting.FileSystemObject") strTargetPath = "../konkurrence" i = 1 do while (objFSO.FileExists(server.mappath(strTargetPath) & "/image" & i & ".jpg")=true) i = i + 1 loop newFileName = "image" & i & ".jpg"
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.