webForumDet fria alternativet

Skapa mapp och fil!

ASP

8 svar · 298 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Har denna kod som jag vill ska skapa en mapp med namnet som står vid Anvnamn. Sedan ska en fil skapas med namn index.asp och den ska innehålla det vid Info. Har bara skrivit det jag vill ha med i koden så ni vet. Hur ska jag skriva? Går det?

<%
Anvnamn = "Asa_80"

Info    = "<%Set Conn = Server.CreateObject("ADODB.Connection")& vbCrLf
Info    = "Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/matsedel.mdb")%>" & vbCrLf
Info    = Info & "<table>" & vbCrLf
Info    = Info & "  <tr>" & vbCrLf
Info    = Info & "    </td>" & vbCrLf
Info    = Info & "      Anvnamn & " bilder!" & vbCrLf
Info    = Info & "      <%Set RS=Conn.Execute("Select * From bilder Where user='" & Anvnamn & "' Order By id desc")
Info    = Info & "      Do Until RS.EOF%>" & vbCrLf
Info    = Info & "          <%RS("rubrik")%>" & vbCrLf
Info    = Info & "      <%RS.MoveNext" & vbCrLf
Info    = Info & "      Loop%>" & vbCrLf
Info    = Info & "    </td>" & vbCrLf
Info    = Info & "  </tr>" & vbCrLf
Info    = Info & "</table>"

If Request.QueryString("do") = "" Then%>
<a href="?do=skapa">Skapa</a>
<%ElseIf Request.QueryString("do") = "skapa" Then

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")	
     Set objFile = objFSO.CreateFolder(Server.MapPath(Anvnamn))
     Set objFile = objFSO.CreateTextFile(Server.MapPath(Anvnamn & "/index.asp"))
     objFile.Write(Info)
Set objFSO = Nothing
Response.Redirect "index.asp"

End If%>
If Request.QueryString("do") = "" Then%>
<a href="?do=skapa">Skapa</a>
<%ElseIf Request.QueryString("do") = "skapa" Then

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")	
     Set objFile = objFSO.CreateFolder(Server.MapPath(Anvnamn))
     Set objFile = objFSO.CreateTextFile(Server.MapPath(Anvnamn & "/index.asp"))
     objFile.Write(Info)
Set objFSO = Nothing
Response.Redirect "index.asp"

End If%>
Medlem sedan dec. 20011 860 inlägg
#2

Re: Skapa mapp och fil!

Jag har alltså en databas där jag vill hämta allt ifrån efteråt! Man ska alltså få en egen sida typ!

Medlem sedan mars 20002 836 inlägg
#3

vill du skapa dem direkt i wwwroot?

cya,
PatrikB

Medlem sedan mars 20002 836 inlägg
#4

Nu när jag läst en gång till så ser jag vad du vill åstadkomma.
Det du vill är att skapa en avnändarkatalog med en default fil i.

jag skulle skapa en mall av en sådan katalog och sedan kopiera hela den katalogen.
Filen default.asp som ligger i mappen har redan all sin kod i sig och går och hämtar info beroende på vilket användarnamn som (katalog) som efterfrågas.

Kan återkomma med lite kod senare om du inte vill försöka själv ....
Men nu har du tänket :e

cya,
PatrikB

Medlem sedan dec. 20011 860 inlägg
#5

Det var ju smart Patrik. Tänkte ej på det! Ska testa det och återkommer!

Medlem sedan dec. 20011 860 inlägg
#6

Så här blev koden:

<%
Anvnamn = "Asa_80"

If Request.QueryString("do") = "" Then%>
<a href="?do=skapa">Skapa</a>
<%ElseIf Request.QueryString("do") = "skapa" Then

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")	
     Mall = Server.MapPath("Mall")
     NyMapp = Server.MapPath(Anvnamn)
     objFSO.CopyFolder Mall , NyMapp
Set objFSO = Nothing
Response.Redirect "index.asp"

End If%>

Hur plockar jag ut Asa_80 i denna ?

/jobb/sexziten/Asa_80/index.asp

Medlem sedan dec. 20011 860 inlägg
#7

Jag gjorde så här å då funkade det:

Anvnamn = Request.ServerVariables("SCRIPT_NAME")
arrPath = split(Anvnamn, "/")
Anvnamn = arrPath(ubound(arrPath)-1)
Medlem sedan mars 20015 287 inlägg
#8

Stilla undran, varför behöver du plocka ut Anvnamn?

Vet du inte redan det?

Medlem sedan mars 20002 836 inlägg
#9

beror ju på att när en besökare skriver in: http://mydomain.com/anvarare/index.asp så vet man inte vilken användare som ska sökas. Därav måste man "plocka" ut användarnamnet.

Men!!! hur går det om jag bara skriver: http://mydomain.com/användare

eftersom du splittar på / så skulle jag använda index 4 (arrPath(4)) eftersom den "alltid" kommer att vara på den platsen :e

en annan sak är felhanteringen ..... kan hända rätt mycket när man skapar, kopierar mappar osv.

Här är mitt exempel på hur det skulle kunna se ut, med lite felhantering (endast skapandet av memberfolder):

createMember.asp
==============

<%
Option Explicit

'## -- vairable declaration --
Dim strMemberName		' As String
Dim strTemplateFolder	' As String
Dim strMemberFolder		' As String
Dim strSuccessMessage	' As String
Dim strSuccess			' As String
%>
<html>
<head>
<title>Create New Member</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
	'## -- kontrollera om formet har postats --
	If Request.Form > "" Then
	
		'## -- formuläret har postats. fortsätt skapa memberinfo --
		
		'## -- hämta valt membername --
		strMemberName = Request.Form("txtMemberName")
		
		'## -- kontrollera att vi har ett membername --
		If Len("" & strMemberName) > 0 Then
			'## -- vi har ett medlemsnamn --
			
			'## -- kontrollera att medlemsnamn inte redan existerar --
			
			'## -- lägg in det som ska till db här etc. --
			
			
			'## -- skapa medlemsinfo (folder etc.) från templatefolder --
			strTemplateFolder = Server.MapPath("/asa_80/_member")
			strMemberFolder = Server.MapPath("/asa_80/" & strMemberName)
			
			strSuccess = copyFolder(strTemplateFolder, strMemberFolder)
			
			'## -- kolla om vi lyckades att skapa medlemsfoldern --
			If strSuccess = "0" Then
			
				'## -- vi lyckades. visa meddelande senare till klient --
				strSuccessMessage = "A new member has been created."
				
			End If	'## -- end kontroll om vi har lyckats att skapa en katalog --
			
		End If	'## -- end kontroll om vi har ett medlemsnamn eller inte --
		
	End If	'## -- end kontroll av postat formulär --

	'## -- kontrollera om vi har ett fel --
	If Len("" & strSuccess) > 0 Then
	
		'## -- vi har ett fel.	--
		
		'## -- kolla vilket fel som uppstod --
		Select Case strSuccess
			Case 0
				'## -- do nothing. inga fel har uppstått
				
			Case 1
				Response.Write "<p>An error occured while copy folder template."

				'## -- rensa valt membername --
				strMemberName = ""
				
				
			'## -- ett annat fel --
			Case 2
				Response.Write "<p>Member name already exists. choose another one."
				
				'## -- rensa valt membername --
				strMemberName = ""

			'## -- default error --
			Case Else
				Response.Write "<p>An unspecified error occured!."
				
				'## -- rensa membername --
				strMemberName = ""
				
		End Select	'## -- end error case --
		
	End If	'## -- end kontroll av fel --
	
	'## -- kolla om vi har lyckats att skapa en användare -- 
	If Len("" & strSuccessMessage) > 0 Then
		'## -- visa successmeddelande till användaren --
		Response.Write "<p>" & strSuccessMessage
		
		'## -- rensa membername --
		strMemberName = ""
	End If
%>
<form name="form1" method="post" action="createMember.asp">
  <table width="350" border="0" cellspacing="0" cellpadding="3">
	<tr>
	  <td>Membername:</td>
	  <td>
		<input type="text" name="txtMemberName" size="45" value="<% =strMemberName%>">
	  </td>
	</tr>
	<tr>
	  <td>&nbsp;</td>
	  <td>
		<input type="submit" name="Submit" value="Create">
	  </td>
	</tr>
  </table>
</form>
</body>
</html>
<%
'## -- kopierar en folder. lyckas kopieringen returneras true annars false --
Function copyFolder(folderPath, copyPath) ' As String
	Dim fso			' As Scripting.FileSystemObject
	Dim strErrNum	' As String
	
	'## -- inga error --
	strErrNum = "0"
	
	'## -- skapa filsystem object --
	Set fso = Server.CreateObject("Scripting.FileSystemObject")
		
		'## -- felhantering --
		'## -- kontrollera om katalogerna existerar --
		If Not fso.FolderExists(folderPath) Then strErrNum = "1"	'## -- template katalogen existerar inte --
		If fso.FolderExists(copyPath) Then strErrNum = "2"		'## -- medlemskatalog existerar redan --

		'## -- kontrollera om några fel har uppstått --
		If strErrNum = "0" Then
			'## -- inga fel. skapa katalogen --
			Call fso.CopyFolder(folderPath, copyPath)
		End If

	'## -- clean up --
	Set fso = Nothing
	
	'## -- return error num as string --
	copyFolder = strErrNum
End Function
%>

cya,
PatrikB

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)