Hej alla glada!
Jag skulle behöva tips på om man kan på någotsätt ha en sida tex laddaup.asp och där finns det först ett fält man kan välja mapp man vill lägga upp bilden i eller skapa en ny mapp, sen ett fält som man laddar upp bilden från.
har aspupload på servern, men det fungerar väl kanske med fso också?
Är inte ett dug haj på detta så en kodsnutt så här i juletider skulle inte sitta helt fel, tack på förhand! :birp
Nu har jag hittat en kod som Solbulle har skrivit, men problemet är att jag inte vill skapa en mapp i mappen så att säga i det här fallet mappen "bosse" som redan finns och sedan "martin" utan endast skapa EN mapp från där .asp filen ligger, är ni med? ;)
<%
username = "bosse"
section = "martin"
Call Makefolder(username & "\" & section)
Sub Makefolder(foldername)
set fso = server.createobject("scripting.filesystemobject")
sFolder = Split(foldername,"\")
sFolder = Split(foldername,"/")
For i=0 To Ubound(sFolder)
fLoc = fLoc&sFolder(i)&"/"
myF = Server.Mappath("./"&fLoc)
IF Not fso.FolderExists(myF) then
fso.CreateFolder myF
End If
response.write(myF&"<br>")
Next
set fso = nothing
End Sub
%>
HEJ!
Det borde väl endast vara att ta bort username från funktionsanropet?
Call Makefolder(section)
Du kan säkert städa bort en eller annan rad i funktionen som har att göra med detta, tex sFolder = Split(foldername,"\").
Fungerar mitt översta förslag, prova dig fram i städningen.
(Förstår inte hur en variabeln sFolder kan ha två värden i funktionen?)
Jag fick det att fungera (se nedan), dock så undrar jag hur man gör för att posta vilken mapp man vill skapa från ett input fält från en annan sida? hur kan denna kod se ut?
<%
section = "martin"
Call Makefolder(section)
Sub Makefolder(foldername)
set fso = server.createobject("scripting.filesystemobject")
sFolder = Split(foldername,"\")
sFolder = Split(foldername,"/")
For i=0 To Ubound(sFolder)
fLoc = fLoc&sFolder(i)&"/"
myF = Server.Mappath("./"&fLoc)
IF Not fso.FolderExists(myF) then
fso.CreateFolder myF
End If
response.write(myF&"<br>")
Next
set fso = nothing
End Sub
%>
Bestäm först hur du vill få tag i mapparna, antingen läser du med FSO från disken, eller så lagrar du dem i databasen.
(Beroende på hur ofta detta körs, kanske FSO+textfil, som uppdateras när folder skapas?)
Sedan loopar du ut foldernamnen i en dropdown, och hämtar det med aspupload-obj.form/querystring("folder") och stoppar in det i det funktionsanrop vi nyss rensade i. ;)
Troligen behöver du då inte ändra i själva funktionen, om du inte rensade i den också.
Du får givetvis kontrollera vad som händer om du laddar upp i bef folder eller skapar en ny; om all kod hänger med, kort sagt.
... hämtar det med aspupload-obj.form/querystring("folder") och stoppar in det i det funktionsanrop vi nyss rensade i.
Du kan inte använda request.querystring (eller form) eftersom du använder ett file-objekt. Namnet på den håller hela formulärets värde, i ditt fall filnamn och vad du väljer i dropdownen.
Om du bara helt enkelt ska skapa en mapp, utan undermappar som sagt kan du förenkla koden:
(detta bygger på att du i ett textfält skriver namnet på mappen du vill skapa.)
foldername = Upload.Form("foldername")
If foldername <> "" then
call Makefolder(foldername)
End if
Sub Makefolder(foldername)
set fso = server.createobject("scripting.filesystemobject")
newfolder = Server.Mappath("./"&foldername)
IF Not fso.FolderExists(newfolder) then
fso.CreateFolder newfolder
End If
response.write(newfolder&" skapades.<br>")
set fso = nothing
End Sub
130 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe