Avatar billede mrs Nybegynder
27. november 2002 - 20:51 Der 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)

      '  Display the properties of the current file
      '  ******************************************
        Response.Write("Name = " & file.Name & "<BR>")
        Response.Write("Size = " & file.Size & "<BR>")
        Response.Write("FileName = " & file.FileName & "<BR>")
        Response.Write("FileExt = " & file.FileExt & "<BR>")
        Response.Write("FilePathName = " & file.FilePathName & "<BR>")
        Response.Write("ContentType = " & file.ContentType & "<BR>")
        Response.Write("ContentDisp = " & file.ContentDisp & "<BR>")
        Response.Write("TypeMIME = " & file.TypeMIME & "<BR>")
        Response.Write("SubTypeMIME = " & file.SubTypeMIME & "<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
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>")
%>
Avatar billede eagleeye Praktikant
28. november 2002 - 09:24 #1
du behøves ikke alt dette for at hendte fra fom:

'  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

        intCount = intCount + 1
Avatar billede eagleeye Praktikant
28. november 2002 - 09:26 #2
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..
Avatar billede eagleeye Praktikant
28. november 2002 - 09:32 #3
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"

file.SaveAs (Server.MapPath(strTargetPath & newFileName))
Avatar billede mrs Nybegynder
28. november 2002 - 11:30 #4
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"

file.SaveAs (Server.MapPath(strTargetPath & newFileName))
Avatar billede eagleeye Praktikant
28. november 2002 - 19:24 #5
det forstår jeg ikke helt..det ser ellers rigtig ud..
Avatar billede mrs Nybegynder
28. november 2002 - 19:32 #6
Nej, men den giver nedenstående fejlmeddelse når jeg prøver på webserver og ikke min egen IIS. Der er intet der bliver gemt på serveren.

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/safileup/formrespsmart.asp, line 44
Avatar billede eagleeye Praktikant
28. november 2002 - 19:34 #7
Prøv at tilføge denne linie:

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Avatar billede mrs Nybegynder
28. november 2002 - 19:39 #8
Ja det hjalp det problem, nu kniber det med denne linie:

file.SaveAs (Server.MapPath(strTargetPath & newFileName))

Unable to save file (Error 1120)

Prøver lige at kigge på deres side hvad denne fejlmeddelse betyder.
Avatar billede mrs Nybegynder
28. november 2002 - 19:46 #9
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.
Avatar billede eagleeye Praktikant
28. november 2002 - 19:46 #10
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.
Avatar billede mrs Nybegynder
28. november 2002 - 20:15 #11
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"

file.SaveAs("e:\kunder\xxx\konkurrence\" & newFileName)

Ny virker det...
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