Det känns inte som några problem.FSO, skapa en mapp
Tjo!
nu har jag en undran, jag vet inte om jag e på rätt sår och om det funkar, är ju inte så bra på det här ju, vill bara att det ska funka typ:)
har en idé som jag vill testa att göra o få det att funka, jag har en sida som vi kan kalla, index.asp på den sidan ska man fylla i personuppgifter osv. typ förnamn, efternamn, telefonnummer o så. när man gjort allt detta så vill jag skapa en mapp som blir förnamnet på personen, typ kalle, om fälten för namn som ligger i en form heter "anvandarnamn" så undrar jag hur man går vidare, allt sparas ju också i en databas så namnet "kalle" som sparas i en databas ska också bli till en mapp på serven typ.
någon som förstår och kan o har en lösning? :-)
/Tommy Sv: FSO, skapa en mapp
Saker att tänka på:
1. Du måste ha en rotmapp som den skall utgå från (Däri alla mappar skall skapas i)
2. Helst inga specialtecken eller å,ä, ö i användarnamn = mappnamn.
Först efter formen postats kollar du om namnet inte är upptaget ( om du inte gör det innan mha ajax- men det är en vidare huvudbry ;)
Om formulärvalidering gått igenom: Lägg in informationen i databasen
Sedan skapar du mappen med FSO:
<code:asp>
<%
Dim objFSO, objFolder, strDirectory
strusername=Request.Form("username") '<- Fast bör ha validerats först eller ta värdet från raden som just skapades i databasen
basePath = "c:\wwwroot\mySite\userfolders\" ' <- Sökväg till rotmappen. Se till att ha skrivrättigheter.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(basePath & strUsername) ' Skapar användarmappen.
%>
</code>
När du sedan vill lista filerna i användarens mapp så får du först hämta användarnamnet i databasen
<code:asp>
<%
Set RS=Conn.Execute("SELECT Id, username from users WHERE Id="&session("userid"))
'Se till att du vet vad du stoppar i din sessionsvarabel, annars skydda dig mot SQL-injections
if not RS.eof then
strUsername=RS("username")
Set objFSO = CreateObject("Scripting.FileSystemObject") 'behövs ej om du redan skapat objektet
If objFSO .FolderExists(basePath & strUsername) = true Then
Set objFolder = objFSO.GetFolder(basePath & strUsername)
'Här kan du nu lista filerna...
Else
Response.Write "Användarmappen hittades inte."
End If
Else
Response.Write "Användaren hittades inte"
End if
RS.Close : Set RS=Nothing
%>
</code>
Lite tips på vägen:
* Ta inte användarnamnet från querystringen utan basera gärna på id hämtat från en sessionsvariabel för ökad säkerhet
* Skriv <b>aldrig</b> ut den fysiska sökvägen i helhet någonstans på sidan
* För att inte drabbas av dubletter (användare med samma förnamn) kan du döpa användarmappen till "förnamn_id" ( kalle_3 )