Avatar billede nythjem Nybegynder
08. juni 2004 - 22:12 Der er 27 kommentarer og
2 løsninger

Request i kopierings script

Hej Alle..

Ellebaek har lige konstrueret følgende script.

Nu er problemet så bare, at jeg skal have kopieret understående filer ind i en mappe, der lige er blevet oprettet. Mappens navn får jeg fra en querystring, der ser sådan ud:

oprettet.asp?item=nymappenavn

Når jeg så kalder understående fil, vil jeg gerne have den til, at kopiere nogle filer ind i den nye mappe. Men hvordan requester jeg den nye mappe i scriptet?

Jeg forestillede mig understående, men det virker desværre ikke :(

fileObject.Copy Server.MapPath(Nymappe & "" & Request.Querystring("item") & ""kopieret.asp"),false

Hvordan gør jeg lige? På forhånd tak..


####### ORIGINALT SCRIPT ########

<%
Set fso = CreateObject("Scripting.FileSystemObject")
'** Den fil som skal kopieres ***
Set fileObject = fso.GetFile(Server.MapPath("\copy\default.asp"))
fileObject.Copy Server.MapPath(Nymappe & "kopieret.asp"),false

Set fileObject = Nothing
Set fso = Nothing

%>
Avatar billede ellebaek Nybegynder
08. juni 2004 - 22:21 #1
<%
Set fso = CreateObject("Scripting.FileSystemObject")
'** Den fil som skal kopieres ***
Set fileObject = fso.GetFile(Server.MapPath("\copy\default.asp"))
fileObject.Copy fileObject.Copy Server.MapPath(Nymappe & "\" & Request.Querystring("item")),false
set file = fso.GetFile(server.mappath(Nymappe & "\" & request.querystring("item") & "\default.asp"))
file.name = "kopieret.asp"

Set fileObject = Nothing
Set fso = Nothing

%>

prøv sådan her..
Avatar billede eagleeye Praktikant
08. juni 2004 - 22:21 #2
Slutter variablne Nymappe med en / ?
Eks:  folder/

Prøv sådan her som du har vist bare med et / før filnanvet:


fileObject.Copy Server.MapPath(Nymappe & "" & Request.Querystring("item") & ""/kopieret.asp"),false
Avatar billede ellebaek Nybegynder
08. juni 2004 - 22:21 #3
hovsa.. En mindre copy paste fejl ;-)

<%
Set fso = CreateObject("Scripting.FileSystemObject")
'** Den fil som skal kopieres ***
Set fileObject = fso.GetFile(Server.MapPath("\copy\default.asp"))
fileObject.Copy Server.MapPath(Nymappe & "\" & Request.Querystring("item")),false
set file = fso.GetFile(server.mappath(Nymappe & "\" & request.querystring("item") & "\default.asp"))
file.name = "kopieret.asp"

Set fileObject = Nothing
Set fso = Nothing

%>

Sådan her.
Avatar billede nythjem Nybegynder
08. juni 2004 - 22:29 #4
Ellebaek, din giver Permission denied.

Eagleeye, din giver Unterminated string constant

Ellers tak fordi I er så hurtige :)
Avatar billede ellebaek Nybegynder
08. juni 2004 - 22:33 #5
Arh.. Det er noget med hvor den skal placeres...
Læste lige lidt her: http://www.eksperten.dk/spm/507473
Prøv måske med:
<%
Set fso = CreateObject("Scripting.FileSystemObject")
'** Den fil som skal kopieres ***
Set fileObject = fso.GetFile(sti & "fso\default.asp"))
fileObject.Copy newfolderpath,false
set file = fso.GetFile(newfolderpath & "\default.asp"))
file.name = "kopieret.asp"

Set fileObject = Nothing
Set fso = Nothing

%>
Avatar billede ellebaek Nybegynder
08. juni 2004 - 22:36 #6
altså hvor sti er den du definere i den anden fil, og det samme med newfolderpath...
Avatar billede nythjem Nybegynder
08. juni 2004 - 22:44 #7
:) Det har sgu lykkedes dig, at forvirre mig total *Gg*

Hvordan gør jeg det..? Og undskyld jeg er så besværlig..

Jeg har følgende filer..

### Opret.asp ###

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<html>

<head>

<title></title>
</head>
<body>
<%if request.QueryString("mode") = "" then%>
<form name="form" method="post" <%if not request.QueryString("mappenavn") = "" then%>enctype="multipart/form-data"<%end if%> action="opret.asp?mode=<%if not request.QueryString("mappenavn") = "" then%>opret<%else%>tzag<%end if%>&mappenavn=<%=request.QueryString("mappenavn")%>">
<table width="100%"  border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100%"><%if request.QueryString("mappenavn") = "" then%><input type="text" name="mappenavn"><%end if%></td>
  </tr>
  <tr>
    <td width="100%"><input type="submit" name="Submit" value="Opret"></td>
  </tr>
</table>
</form>

<%
end if
if request.QueryString("mode") = "tzag" then
response.Redirect("opret.asp?mappenavn="&request.Form("mappenavn")&"")
end if

if request.QueryString("mode") = "opret" then

Set Upload = Server.CreateObject("Persits.Upload")

sti = "d:\web\domæne\www"
newfolderpath = sti & "\" & request.QueryString("mappenavn")

set filesys = Server.CreateObject("Scripting.FileSystemObject")
If not filesys.FolderExists(newfolderpath) Then
  Set newfolder = filesys.CreateFolder(newfolderpath)
else
response.Write(newfolderpath)
response.write "Adressen findes desværre i forvejen<BR><br><a href='opret.asp'>Prøv venligst igen</a>"
response.End
End If
set filesys = nothing

Count = Upload.Save(newfolderpath)
Response.Redirect ("fso.asp?item=" & request.QueryString("mappenavn") & "")

end if
%>
</body>
</html>


### Fso.asp ###

<html>
<title></title>
<head>
</head>
<body>

Mappen er nu oprettet, og filerne kopieret!


<%
Set fso = CreateObject("Scripting.FileSystemObject")
'** Den fil som skal kopieres ***
Set fileObject = fso.GetFile(sti & "copy\default.asp"))
fileObject.Copy newfolderpath,false
set file = fso.GetFile(newfolderpath & "\default.asp"))
file.name = "kopieret.asp"

Set fileObject = Nothing
Set fso = Nothing

%>

</body>
</html>
Avatar billede ellebaek Nybegynder
08. juni 2004 - 22:47 #8
hmm sådan her tror jeg...

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<html>

<head>

<title></title>
</head>
<body>
<%if request.QueryString("mode") = "" then%>
<form name="form" method="post" <%if not request.QueryString("mappenavn") = "" then%>enctype="multipart/form-data"<%end if%> action="opret.asp?mode=<%if not request.QueryString("mappenavn") = "" then%>opret<%else%>tzag<%end if%>&mappenavn=<%=request.QueryString("mappenavn")%>">
<table width="100%"  border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100%"><%if request.QueryString("mappenavn") = "" then%><input type="text" name="mappenavn"><%end if%></td>
  </tr>
  <tr>
    <td width="100%"><input type="submit" name="Submit" value="Opret"></td>
  </tr>
</table>
</form>

<%
end if
if request.QueryString("mode") = "tzag" then
response.Redirect("opret.asp?mappenavn="&request.Form("mappenavn")&"")
end if

if request.QueryString("mode") = "opret" then

Set Upload = Server.CreateObject("Persits.Upload")

sti = "d:\web\domæne\www"
newfolderpath = sti & "\" & request.QueryString("mappenavn")

set filesys = Server.CreateObject("Scripting.FileSystemObject")
If not filesys.FolderExists(newfolderpath) Then
  Set newfolder = filesys.CreateFolder(newfolderpath)

'** Den fil som skal kopieres ***
Set fileObject = filesys.GetFile(sti & "copy\default.asp"))
fileObject.Copy newfolderpath,false
set file = filesys.GetFile(newfolderpath & "\default.asp"))
file.name = "kopieret.asp"


else
response.Write(newfolderpath)
response.write "Adressen findes desværre i forvejen<BR><br><a href='opret.asp'>Prøv venligst igen</a>"
response.End
End If
set filesys = nothing

Count = Upload.Save(newfolderpath)
Response.Redirect ("fso.asp?item=" & request.QueryString("mappenavn") & "")

end if
%>
</body>
</html>

har sat det ind her...
Antager at du har tilpasset mappenavnene ?
Avatar billede nythjem Nybegynder
08. juni 2004 - 22:51 #9
Hops.. :)

Expected end of statement
Set fileObject = filesys.GetFile(sti & "copy\default.asp"))
----------------------------------------------------------^
Avatar billede nythjem Nybegynder
08. juni 2004 - 22:52 #10
Hehe.. Pilen peger selvfølgelig på end statement, og ikke fil fortegnelsen :)
Avatar billede ellebaek Nybegynder
08. juni 2004 - 22:52 #11
hopla.. Endnu en copy paste fejl...
Det kører nu..
Ret det her:
set filesys = Server.CreateObject("Scripting.FileSystemObject")
If not filesys.FolderExists(newfolderpath) Then
  Set newfolder = filesys.CreateFolder(newfolderpath)

'** Den fil som skal kopieres ***
Set fileObject = filesys.GetFile(sti & "copy\default.asp"))
fileObject.Copy newfolderpath,false
set file = filesys.GetFile(newfolderpath & "\default.asp"))
file.name = "kopieret.asp"

til:

set filesys = Server.CreateObject("Scripting.FileSystemObject")
If not filesys.FolderExists(newfolderpath) Then
  Set newfolder = filesys.CreateFolder(newfolderpath)

'** Den fil som skal kopieres ***
Set fileObject = filesys.GetFile(sti & "copy\default.asp")
fileObject.Copy newfolderpath,false
set file = filesys.GetFile(newfolderpath & "\default.asp")
file.name = "kopieret.asp"
Avatar billede nythjem Nybegynder
08. juni 2004 - 23:03 #12
Okay Ellebaek..

Jeg har nu understående fil.. :)

Jeg har rettet stien copy til at være relativ. Får nu fejlen..

Microsoft VBScript runtime  error '800a0046'

Permission denied

/infon/opret.asp, line 41

#### FIL ####

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<html>

<head>

<title></title>
</head>
<body>
<%if request.QueryString("mode") = "" then%>
<form name="form" method="post" <%if not request.QueryString("mappenavn") = "" then%>enctype="multipart/form-data"<%end if%> action="opret.asp?mode=<%if not request.QueryString("mappenavn") = "" then%>opret<%else%>tzag<%end if%>&mappenavn=<%=request.QueryString("mappenavn")%>">
<table width="100%"  border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100%"><%if request.QueryString("mappenavn") = "" then%><input type="text" name="mappenavn"><%end if%></td>
  </tr>
  <tr>
    <td width="100%"><input type="submit" name="Submit" value="Opret"></td>
  </tr>
</table>
</form>

<%
end if
if request.QueryString("mode") = "tzag" then
response.Redirect("opret.asp?mappenavn="&request.Form("mappenavn")&"")
end if

if request.QueryString("mode") = "opret" then

Set Upload = Server.CreateObject("Persits.Upload")

sti = "d:\web\domæne\www"
newfolderpath = sti & "\" & request.QueryString("mappenavn")

set filesys = Server.CreateObject("Scripting.FileSystemObject")
If not filesys.FolderExists(newfolderpath) Then
  Set newfolder = filesys.CreateFolder(newfolderpath)

'** Den fil som skal kopieres ***
Set fileObject = filesys.GetFile(sti & "copy\default.asp")
fileObject.Copy newfolderpath,false
set file = filesys.GetFile(newfolderpath & "\default.asp")
file.name = "kopieret.asp"


else
response.Write(newfolderpath)
response.write "Adressen findes desværre i forvejen<BR><br><a href='opret.asp'>Prøv venligst igen</a>"
response.End
End If
set filesys = nothing

Count = Upload.Save(newfolderpath)
Response.Write "Filen er oprettet"

end if
%>
</body>
</html>
Avatar billede ellebaek Nybegynder
08. juni 2004 - 23:04 #13
hvad linie er linie 41 ?
Avatar billede eagleeye Praktikant
08. juni 2004 - 23:04 #14
Permission denied --> Det lyder som om du ikke har rettighed til at oprette filer i den nye mappe, er du sikker på du har det?
Avatar billede nythjem Nybegynder
08. juni 2004 - 23:07 #15
Linie 41: fileObject.Copy newfolderpath,false

Jeg er næsten helt sikker.. Da Ellebaek lavede det forhenværende script kørte det uden nogle problemer :)
Avatar billede ellebaek Nybegynder
08. juni 2004 - 23:10 #16
mystisk det ikke virker nu så...
For det er jo det samme der står jo..

Hmm... mon det er fordi du opretter mappen, og så ligger filen ind i lige efter ?
Avatar billede eagleeye Praktikant
08. juni 2004 - 23:13 #17
ok :)

Skal du ikke angive et filnavn i .Copy i denne linje:
fileObject.Copy newfolderpath,false

Sådan her:
fileObject.Copy newfolderpath & "\default.asp",false
Avatar billede nythjem Nybegynder
08. juni 2004 - 23:15 #18
Jah, you tell me, du er eksperten, jeg er amatøren :)

Den fil du lavede virker jo fortrinligt. Underligt, at den ikke vil kopiere det ind..

Jeg bliver desværre nødt til, at smutte hjem fra kontoret nu. Hvis du finder på noget, så venter jeg spændt :)

Ellers sov herligt når du/I kommer dertil..
Avatar billede eagleeye Praktikant
08. juni 2004 - 23:17 #19
hehe ok, jeg er lidt i tvivl om det er nødvendig, men ifølge dette eks. skal filnavnet med: http://www.w3schools.com/asp/met_copy.asp
Så prøv det ;)

fileObject.Copy newfolderpath & "\default.asp",false
Avatar billede ellebaek Nybegynder
08. juni 2004 - 23:17 #20
jeg skriver når jeg finder på noget..

men hopper også selv i seng nu ;-)

Eagle -> tror ikke der skal filnavn på, i hvert fald ikke ifølge den her: http://www.sloppycode.net/fso/?m=104
Avatar billede ellebaek Nybegynder
08. juni 2004 - 23:18 #21
Eagle -> Hehe, ok.. Når man kan gøre det på den måde er det jo en del nemmere end at skulle rename filen bagefter...

Tænkte på, ved du om det kan være fordi mappen først lige er blevet oprettet?
Kan vel egentlig godt give lidt problemer..?
Avatar billede eagleeye Praktikant
08. juni 2004 - 23:18 #22
Arh ok, nej umiddelbart skulle det jo ikke være nødvendigt.

Kan du se om folderen er oprettet rigtigt?
Avatar billede nythjem Nybegynder
08. juni 2004 - 23:19 #23
Hey forresten Eagle, med din giver den path not found .. :)
Avatar billede nythjem Nybegynder
08. juni 2004 - 23:20 #24
Ja, folderen er oprettet rigtigt :)
Avatar billede eagleeye Praktikant
08. juni 2004 - 23:23 #25
Prøv at udksrive varialben newfolderpath, for at se at den er rigtig:

response.write newfolderpath
response.End
fileObject.Copy newfolderpath & "\default.asp",false
Avatar billede eagleeye Praktikant
08. juni 2004 - 23:25 #26
Mangler der ikke også et \ i denne linje:

Set fileObject = filesys.GetFile(sti & "copy\default.asp")

Eller kopieres filen fra d:\web\domæne\wwwcopy\default.asp og ikke d:\web\domæne\www\copy\default.asp :

Set fileObject = filesys.GetFile(sti & "copy\default.asp")

sådan her:

Set fileObject = filesys.GetFile(sti & "\copy\default.asp")
Avatar billede nythjem Nybegynder
08. juni 2004 - 23:25 #27
Det var sørens.. Lige pludselig var den i vinkel.. *Gg*

Tusinde tak for hjælpen drenge.. :)

Takker en million gange.. Gider I begge ligge svar.. :)

## Rigtig fil ##

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<html>

<head>

<title></title>
</head>
<body>
<%if request.QueryString("mode") = "" then%>
<form name="form" method="post" <%if not request.QueryString("mappenavn") = "" then%>enctype="multipart/form-data"<%end if%> action="opret.asp?mode=<%if not request.QueryString("mappenavn") = "" then%>opret<%else%>tzag<%end if%>&mappenavn=<%=request.QueryString("mappenavn")%>">
<table width="100%"  border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100%"><%if request.QueryString("mappenavn") = "" then%><input type="text" name="mappenavn"><%end if%></td>
  </tr>
  <tr>
    <td width="100%"><input type="submit" name="Submit" value="Opret"></td>
  </tr>
</table>
</form>

<%
end if
if request.QueryString("mode") = "tzag" then
response.Redirect("opret.asp?mappenavn="&request.Form("mappenavn")&"")
end if

if request.QueryString("mode") = "opret" then

Set Upload = Server.CreateObject("Persits.Upload")

sti = "d:\web\domæne\www"
newfolderpath = sti & "\" & request.QueryString("mappenavn")

set filesys = Server.CreateObject("Scripting.FileSystemObject")
If not filesys.FolderExists(newfolderpath) Then
  Set newfolder = filesys.CreateFolder(newfolderpath)

'** Den fil som skal kopieres ***
Set fileObject = filesys.GetFile(sti & "\copy\default.asp")
fileObject.Copy newfolderpath & "\default.asp",false
set file = filesys.GetFile(newfolderpath & "\default.asp")
file.name = "kopieret.asp"


else
response.Write(newfolderpath)
response.write "Adressen findes desværre i forvejen<BR><br><a href='opret.asp'>Prøv venligst igen</a>"
response.End
End If
set filesys = nothing

Count = Upload.Save(newfolderpath)
Response.Write "Din fil er sørme oprettet"

end if
%>
</body>
</html>
Avatar billede ellebaek Nybegynder
08. juni 2004 - 23:26 #28
super.. Ligger et svar ;-)
Kan ikke få det til at virke i min egen test..
Får Path not found ;-))
Avatar billede eagleeye Praktikant
08. juni 2004 - 23:27 #29
Ok her et fra mig  :)
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging