Avatar billede w13 Novice
03. april 2004 - 19:22 Der er 16 kommentarer og
1 løsning

Tjek eksistens af fil

-Hej Eksperter...

-Jeg har denne form, som skal sende en billed-sti videre til en ASP-side, som gemmer billedet på serveren med noget aspImage, og den er sat til automatisk at overskrive billeder i den mappe, det gemmes i, hvis de har samme filnavn. Nu vil jeg så gerne have sat en lille kode på SUBMIT-knappen, som, når man klikker på den, tjekker i mappen 'fileupload', om der er billeder med samme filnavn, som det, man er ved at uploade, og hvis der ER en fil med samme navn, så skal man blive stillet spørgsmålet 'Billedet findes allerede - vil du overskrive?' i en pop-up-meddelelse.

-Er der nogen, der kan hjælpe mig med den kode?


Koden:
_______________________
<FORM ENCTYPE="multipart/form-data" ACTION="eksempel1_svar.asp" METHOD="POST">
<P>Upload et billede:<BR>
<INPUT NAME="fileupload_file" TYPE="file" size="20"><BR>

<P><INPUT NAME="Action" TYPE="submit" VALUE="Udf&oslash;r upload">
</FORM>
_______________________

-Jeg opsummerer lige:

Hvis der i mappen 'Fileupload' eksisterer filer med samme filnavn, som i 'Fileupload_file'-boksen, skal man blive stillet spørgsmålet 'Billedet findes allerede - vil du overskrive?', når man klikker SUBMIT.


-Forhåbentlig kan nogen hjælpe... På forhånd tak!

  W13
Avatar billede eagleeye Praktikant
03. april 2004 - 21:05 #1
Man vi være nød til at gemme filen afligevel, da det bliver en blanding af Server side og Client Side script. Og sever side udføre altid før client side, så man kan ikke lige stille brugeren et spørgsmål undervej.

Så vidt jeg lige kan se har du 2 muligheder.

1. Tjek filnavet, Gem filen (nytnavn), lav en dialogbox som spørger og submitter endnu engang med Ja/Nej til om filen skal overskrives. Skal den overskrives copy det nye filnavn over i det gamle filnavn.

2. Lav en checkbox på form'en om filen skal overskrives hvis den findes. så det meget lettere at lave koden :)
Avatar billede w13 Novice
04. april 2004 - 10:58 #2
Ja, men problemet er bare, at den kode, jeg har anskaffet mig, var en temmelig avanceret gratis-kode... Og jeg har siddet længe og stirret på den... Jeg aner ikke, hvad jeg skulle ændre i den for at få det til at virke...
Avatar billede w13 Novice
04. april 2004 - 11:02 #3
Hmmm... Er det ikke muligt først at sende brugeren til EN side, hvor brugeren vælger billedet og trykker 'submit', hvorefter den tjekker i mappen 'fileupload' om der er andre filer med navnet, og hvis der ER det, skal den lave en pop-up, og hvis man så vælger at gå videre kommer man til den RIGTIGE side, så man skal vælge billedet en gang til og trykke 'SUBMIT' før billedet gemmes... Altså to sider, hvor den ene tjekker og den anden gemmer...?
Avatar billede w13 Novice
04. april 2004 - 14:34 #4
-Nej, jeg gør det nemmere:

-Kan nogen hjælpe mig med en kode, som tjekker om et filnavn allerede findes i en forudbestemt mappe, når der klikkes på en knap?
Avatar billede -master-d- Nybegynder
04. april 2004 - 14:55 #5
Avatar billede -master-d- Nybegynder
04. april 2004 - 14:58 #6
Du kan godt lave det på en anden måde end først at sende brugeren videre til en ny side.
Du kan lave en popup som tjekker om filen eksisterer og derefter returnerer enten sandt eller falsk. På den måde behøver du heller ikke tænke på hvordan du skal få din gratis kode til at virke.

Du skal dog være godt bekendt med brug af clientside scripting (JavaScript).
Avatar billede w13 Novice
04. april 2004 - 15:46 #7
-Jeg prøvede den der 'Fileexists.asp'-side, men kan ikke helt få det til at virke...

-Min bruger er først på en side med en FORM hvori der er et 'fil-felt' med en 'gennemse'-knap ved siden af,og når brugeren har valgt en fil og trykket på 'SUBMIT'-knappen, sendes han til en asp-side, hvor der køres denne kode:

<html><head></head><body><%
dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists '" & Request.Form("billedkontrol") & "'=true then
  response.write("Filen eksisterer allerede!")
else
  response.write("Filen er ikke før blevet gemt!")
end if
set fs=nothing
%>
</body></html>

-Men det virker ikke, ogjeg er heller ikke særlig stærk i det... Hva' gør jeg galt? (Feltet i formen HEDDER 'Billedkontrol'!)
Avatar billede -master-d- Nybegynder
04. april 2004 - 16:28 #8
hvordan ligger mappen hvori billedet skal gemmes i forhold til roden på hele hjemmesiden?
Avatar billede w13 Novice
04. april 2004 - 16:30 #9
Tja... Når jeg logger på min ftp kan jeg vælge mellem flere mapper... Den ene hedder WWW... (Det må være roden, ikke?) Men mappen ligger ikke under WWW, men derimod under bit-city/upload/fileupload!
Avatar billede -master-d- Nybegynder
04. april 2004 - 16:49 #10
og når du logger på din ftp kan du vælge mellem www og bit-city ikke?

Så skal din fil se sådan her ud:

<html><head></head><body>
<%
dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists('/upload/fileupload/" & Request.Form("billedkontrol") & "')=true then
  response.write("Filen eksisterer allerede!")
else
  response.write("Filen er ikke før blevet gemt!")
end if
set fs=nothing
%>
</body></html>
Avatar billede w13 Novice
04. april 2004 - 17:08 #11
Den fortæller mig, at der er en syntax-fejl her:

if fs.FileExists('fileupload/" & Request.Form("billedkontrol") & "')=true then

Og så sletter jeg apostrofferne og får da at vide, at der nu forventes en parentes!
Avatar billede w13 Novice
04. april 2004 - 17:21 #12
Nå nej... Det ville jo aldrig virke... For i boksen står der eks.: 'C:/dokumenter/billeder/billednavnet.jpg'... Og i mappen på serveren hedder billedet jo bare 'billedet.jpg'!
Avatar billede -master-d- Nybegynder
04. april 2004 - 18:04 #13
slap nu af.. når du først trykker på submit er det kun filnavnet der bliver sendt videre.
Avatar billede w13 Novice
04. april 2004 - 18:17 #14
Shure? Hmmm... Sejt nok! Men der er stadig den/de der fejl...
Avatar billede -master-d- Nybegynder
04. april 2004 - 18:39 #15
<html><head></head><body>
<%
dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists("/upload/fileupload/" & Request.Form("billedkontrol"))=true then
  response.write("Filen eksisterer allerede!")
else
  response.write("Filen er ikke før blevet gemt!")
end if
set fs=nothing
%>
</body></html>


Den skulle virke
Avatar billede w13 Novice
05. april 2004 - 11:39 #16
Nu giver den ikke nogen fejl, men den påstår, at der ikke er nogle gemte filer, uanset hvad jeg skriver! Jeg har også prøvet bare at ændre filnavnet til 'filnavn/', men stadig intet resultat!
Avatar billede w13 Novice
27. juni 2004 - 21:19 #17
Lukker...
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