webForumDet fria alternativet

Ladda upp bilder samt skapa mappar

ASPur ASP

9 svar · 449 visningar · startad av tank82

Medlem sedan feb. 2003210 inlägg
Frågan#1

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

Medlem sedan feb. 2003210 inlägg
#2

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
%>
Medlem sedan apr. 20031 660 inlägg
#3

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?)

Medlem sedan feb. 2003210 inlägg
#4

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
%>
Medlem sedan apr. 20031 660 inlägg
#5

HEJ!

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.

Medlem sedan feb. 2003210 inlägg
#6

jo men vi väntar lite med det som jag skrev först.

Hur skickar jag informationen om vilken mapp som ska skapas från en annan sida till den?

Medlem sedan apr. 20031 660 inlägg
#7

HEJ!

J.N. skrev:

... 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.

Medlem sedan feb. 2003210 inlägg
#8

ok nu är jag helt "lost". Hur ska jag göra då? :q

Medlem sedan juli 20041 183 inlägg
#9

Du menar att du vill skicka med vad mappen ska heta nrä du laddar upp en fil? Då anänder du enctype="multipart/form-data??

I koden för att ta emot text man matat in i ett text-fält använder du t.ex.

upObject.Form("tDescription")

om upObject är din fil som du laddar upp... Jag har inte koden för ASP-Upload men det borde se ut såhär:

Set upObject = Server.CreateObject("Webbhost.ASPUpload")

Något liknande borde du väl hitta? :)

Alltså du använder objektet iställer för Request när du tar emot data...

Var det detta du ville ha svar på?

Medlem sedan mars 20015 287 inlägg
#10

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
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)