Avatar billede rejx Nybegynder
23. oktober 2002 - 15:11 Der er 11 kommentarer og
1 løsning

eksistere filnavnet

Hejsa, jeg har et upload script. Jeg vil høre om det kan lade sig gøre og tjekke om det filnavn man prøver at uploade eksistere i en database, ud fra det formfeldt der er?

jeg har prøvet at bikse lidt med det, men når jeg bruger en Request.Form tror jeg nok jeg får filen i steddet for filnavnet. Mit form felt ser ud som følger:

<INPUT NAME="fileupload_file" TYPE="file">

MVH
Rune
Avatar billede rejx Nybegynder
23. oktober 2002 - 16:48 #1
okay, 150 point til den der kan skrive et script der kan tjekke om filen man prøver at sende eksistere i forvejen, hvis ikke skal de redirectes til en anden side. Ellers skal den bare skrive teksten upload fil.
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 17:39 #2
Hvad bruger du til at uploade med?

ASPupload?

I så fald kan du bruge:

set fso = Server.CreateObject("Scripting.FileSystemObject")
For each file in Upload.Files
  if fso.FileExists(Server.MapPath("/myUploadDirectory/" & file.ExtractFileName)) then
  Response.Write "Filen eksisterer. Øv, hvad?"
  Else
  Response.Write "Filen eksisterer ikke. Godt for dig"
  End If
Next
set fso = nothing

Mvh,

Thomas Regin.
Avatar billede rejx Nybegynder
23. oktober 2002 - 20:42 #3
nej jeg bruger Dundas upload. men kan det ikke lade sig gøre at lave med noget File System Object eller sådan noget?

\\ Rune
Avatar billede rejx Nybegynder
23. oktober 2002 - 20:43 #4
hmmm, det er det der da ikke?  ;)
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 21:03 #5
Rejx,

Det er helt klart muligt, at bruge FileSystemObject selv med Dundas! Jeg må bare tilstå, at jeg ikke aner noget som helst om den komponent!

Anyways.. Hvis du kan hive filnavnet ud af Dundas-upload komponenten, så kan du også bruge den funktion oven over!

Eftersom de fleste af de upload komponenter der er på markedet er stort set ens, så vil jeg tro, at du på én eller anden måde laver et loop gennem dine filer, efter du har trykket på upload-knappen.

F.eks

For each file in XXXXXXX.files

Next

Inde i det loop, burde du så være istand til at udføre nogle ting og sager på dine filer. F.eks at gemme dem, eller checke dem for størrelse og så videre..

Det er herinde at du skal checke om filen eksisterer vha ovenover stående funktion:

set fso = Server.CreateObject("Scripting.FileSystemObject") 'FSO er nu et FileSystemObject
if fso.FileExists(Server.MapPath("/myUploadDirectory/" & file.name)) then
  Response.Write "Filen eksisterer. Øv, hvad?"
  Else
  Response.Write "Filen eksisterer ikke. Godt for dig"
  End If

Håber, at det gi'r nogen mening!

Hvis ikke, så giv mig et link til denne Dundas upload-komponent, så kan jeg måske fortælle dig hvordan du skal gøre!

Eller skriv noget af din kode her!

/thomas
Avatar billede rejx Nybegynder
23. oktober 2002 - 21:11 #6
okay...
http://www.dundas.com/products/onlineDocs/FreeProds/Dunsam.htm


upload koden ser ud som følger:

<%
Set dbforb = Server.CreateObject("ADODB.Connection")
dbforb.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../../db/medlemmer.mdb")


Set objUpload = Server.CreateObject("Dundas.Upload.2")
objUpload.UseUniqueNames = false
sti = Server.MapPath(".") & "\..\gfx\"

Set objNextFile = objUpload.GetNextFile()
objNextFile.Save sti
fileName = objUpload.GetFileName(objNextFile.OriginalPath)

billede = fileName
BrugerID = Request.Querystring("id")

Set objUpload = Nothing

strSAV= "insert into Billeder (Filnavn, BrugerID) values ('" & billede &"', '" & BrugerID & "')"
dbforb.Execute(strSAV)

Response.Redirect "upload.asp"
%>

jeg vil tro jeg skal bruge denne her på en eller anden måde, jeg kan bare ikke lige hitte ud af hvordan. UploadObject.GetFileName()
Avatar billede rejx Nybegynder
23. oktober 2002 - 21:13 #7
ops.. har da helt glemt at lukke database forbindelsen her... men det er da en helt anden side af sagen :)
Avatar billede rejx Nybegynder
23. oktober 2002 - 21:16 #8
alså... nu tænker jeg mig jo så heller ikke så særlig meget om her...

fileName = objUpload.GetFileName(objNextFile.OriginalPath)

burde jo egentlig give filnavnet... doh
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 21:17 #9
Godt!

Så er der jo ingen ko på isen!..

Dette burde virke:

<%
Set dbforb = Server.CreateObject("ADODB.Connection")
dbforb.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../../db/medlemmer.mdb")

set fso = server.CreateObject("Scripting.FileSystemObject")

Set objUpload = Server.CreateObject("Dundas.Upload.2")
objUpload.UseUniqueNames = false
sti = Server.MapPath(".") & "\..\gfx\"

Set objNextFile = objUpload.GetNextFile()
objNextFile.Save sti
fileName = objUpload.GetFileName(objNextFile.OriginalPath)
    if fso.FileExists(sti & fileName) then
        Response.Redirect("FilenEksistererAllerede.asp") 'Filen eksisterer
    End If
set fso = nothing
billede = fileName
BrugerID = Request.Querystring("id")

Set objUpload = Nothing

strSAV= "insert into Billeder (Filnavn, BrugerID) values ('" & billede &"', '" & BrugerID & "')"
dbforb.Execute(strSAV)

Response.Redirect "upload.asp"
%>

Mvh,

Thomas Regin.
Avatar billede rejx Nybegynder
23. oktober 2002 - 21:25 #10
Jo nu kan jeg godt se systemet i det, den kilde kode der var ikke helt rigtig, men jeg takker mange gange for dit svar. Hvis nogen skulle have interesse virker denne:

<%
Set dbforb = Server.CreateObject("ADODB.Connection")
dbforb.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../../db/medlemmer.mdb")

set fso = server.CreateObject("Scripting.FileSystemObject")

Set objUpload = Server.CreateObject("Dundas.Upload.2")
objUpload.UseUniqueNames = false
sti = Server.MapPath(".") & "\..\gfx\"

Set objNextFile = objUpload.GetNextFile()
fileName = objUpload.GetFileName(objNextFile.OriginalPath)
    if fso.FileExists(sti & fileName) then
        Response.Redirect("FilenEksistererAllerede.asp") 'Filen eksisterer
    Else
    objNextFile.Save sti
 
    set fso = nothing
    billede = fileName
    BrugerID = Request.Querystring("id")

    strSAV= "insert into Billeder (Filnavn, BrugerID) values ('" & billede &"', '" & BrugerID & "')"
    dbforb.Execute(strSAV)

    Set objUpload = Nothing
    Response.Redirect "upload.asp"

  End If
%>
Avatar billede thomas_regin Nybegynder
23. oktober 2002 - 21:28 #11
Jamen, det var jo herligt, selvom jeg ikke helt kan se hvad forskellen er mellem de to!

Nuvel, så længe det virker!! ;)

Tak for pointene!

/thomas
Avatar billede rejx Nybegynder
23. oktober 2002 - 21:44 #12
dit script uploader billedet før den tjekker, det var det eneste :)

Set objNextFile = objUpload.GetNextFile()
objNextFile.Save sti  <--- der
fileName = objUpload.GetFileName(objNextFile.OriginalPath)
    if fso.FileExists(sti & fileName) then
        Response.Redirect("FilenEksistererAllerede.asp") 'Filen eksisterer
    End If
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