webForumDet fria alternativet

TextStreamObject

20 svar · 337 visningar · startad av mobilhits

mobilhitsMedlem sedan nov. 200026 inlägg
#1

Hej snälla hjälp mej med detta!

Jag har en fil som jag har denna koden i:
<input type=""file"" name=""upload""> osv..

Varför registrerar den inte filnamnet när jag andvänder denna kod?

----------
Dim C, O
Set C = CreateObject("Scripting.FileSystemObject")
Set O = C.CreateTextFile("c:\windows\skrivbord\iller.txt")

O.WriteLine ""&upload&""

O.Close
---------------------

När man öppnar iller.txt sen så är den tom.. varför? Jag får ju inget felmeddelande heller...
Är det inte "&upload&" man ska andvända?

Hoppas på svar! Tack på förhand..

Mvh Anders

RinaldoMedlem sedan mars 20012 092 inlägg
#2

O.WriteLine ""&request.form("upload")&""

mobilhitsMedlem sedan nov. 200026 inlägg
#3

Det funkade inte med O.WriteLine ""&request.form("upload")&""

Jag får detta felet:
Det går inte att använda samlingen Request.Form efter att BinaryRead har anropats.

Varför?

SicoMedlem sedan maj 20001 980 inlägg
#4

du måste öppna filen innan du ska skriva till den
Set O = C.OpenTextFile("c:\windows\skrivbord\iller.txt")

LarsGMedlem sedan dec. 200012 465 inlägg
#5

Du får använda det form-objekt som upload skapar.

Hur ser koden för upload ut?

mobilhitsMedlem sedan nov. 200026 inlägg
#6

Vaddå form-objektet?? Förklara..

tack på förhand..

SicoMedlem sedan maj 20001 980 inlägg
#7

Hur ser koden för upload ut?

mobilhitsMedlem sedan nov. 200026 inlägg
#8

Dim C, O
Set C = CreateObject("Scripting.FileSystemObject")
Set O = C.CreateTextFile("c:\windows\skrivbord\iller.txt")

O.WriteLine ""&upload&""

O.Close

LarsGMedlem sedan dec. 200012 465 inlägg
#9

Nej, det är inte den koden som är intressant. Du använder en binaryread någonstans i din kod. Oftast är det någon form av uploadskript eller komponent som gör det. Det är den koden som är relevant i sammanhanget.

mobilhitsMedlem sedan nov. 200026 inlägg
#10

<% Response.Expires = 0 %>
<%
Dim UPLOAD_PATH
UPLOAD_PATH = Server.MapPath(""&userid&"/")

Dim g_oFso, g_oFolder, g_oFile
	Set g_oFso	= Server.CreateObject("Scripting.FileSystemObject")
	Set g_oFolder	= g_oFso.getFolder(UPLOAD_PATH)

If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
	Dim g_oUpload
		Set g_oUpload	= get_upload_files()

	Dim fpos, fcontent
		fcontent	= g_oUpload("upload").Item("content")
	Set g_oFile	= g_oFso.CreateTextFile(UPLOAD_PATH & "\\" & extract_filename(g_oUpload("upload").Item("filename")))
	For fpos = 1 to LenB(fcontent)
		g_oFile.Write chr(AscB(MidB(fcontent, fpos, 1)))
	Next
	g_oFile.Close: Set g_oFile	= Nothing

Dim C, O
Set C = CreateObject("Scripting.FileSystemObject")
Set O = C.CreateTextFile("c:\windows\skrivbord\snuttisar\iller.txt")
Set O = C.OpenTextFile("c:\windows\skrivbord\iller.txt")
O.WriteLine g_oUpload.form("upload")

O.Close

	Response.Redirect "start.asp"

End If

Response.Write "\<html\>"&chr(10)&"\<body\>"&chr(10)&""&chr(10)&""
Response.Write "\<font face=verdana size=2\>\<b\>LADDA UPP FILER\</b\>\</font\>"&chr(10)&""&chr(10)&""
Response.Write "\<form name=""frmUpload"" method=""post"" enctype=""multipart/form-data"" action=""" & Request.ServerVariables("SCRIPT_NAME") 	& """\>"&chr(10)&""&chr(10)&""
Response.Write "\<input type=""file"" name=""upload""\>\<br\>\<br\>\<input type=""submit"" 	value=""Ladda upp""\>"&chr(10)&""
Response.Write "\</form\>"&chr(10)&""&chr(10)&"\</body\>\</html\>"

%>
<%
Function get_upload_files()
Dim upload_object, request_binaries
Dim position_start, position_end
Dim boundary, boundary_pos

	Set upload_object	= Server.CreateObject("Scripting.Dictionary")
	request_binaries	= Request.BinaryRead(Request.TotalBytes)
	position_start		= 1
	position_end		= InstrB(position_start, request_binaries, get_byte_string(chr(13)))
	boundary			= MidB(request_binaries, position_start, (position_end - position_start))
	boundary_pos		= InstrB(1, request_binaries, boundary)

	Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))
		If Not(Response.IsClientConnected) Then Response.End

		Dim name, pos_file

		position_start	= (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)
		position_end	= InstrB(position_start, request_binaries, get_byte_string(chr(34)))

		name			= get_string(MidB(request_binaries, position_start, (position_end - position_start)))
		pos_file		= InstrB(boundary_pos, request_binaries, get_byte_string("filename="))

		If  ((pos_file \<\> 0) AND (pos_file \< InstrB(position_end, request_binaries, boundary))) Then
			upload_object.Add name, Server.CreateObject("Scripting.Dictionary")

			position_start	= (pos_file + 10)
			position_end	= InstrB(position_start, request_binaries, get_byte_string(chr(34)))
			upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

			position_start	= (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)
			position_end	= InstrB(position_start, request_binaries, get_byte_string(chr(13)))
			upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))

			position_start	= (position_end + 4)
			position_end	= InstrB(position_start, request_binaries, boundary) - 2
			upload_object.item(name).Add "size", ((position_end - position_start))
			upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))
		End If
		boundary_pos	= InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)
	Loop

	Set get_upload_files = upload_object
End Function

Function get_byte_string(str)
	Dim cnt
	For cnt = 1 to Len(str)
		get_byte_string	= get_byte_string & chrB(AscB(Mid(str, cnt, 1)))
	Next
End Function

Function get_string(str)
	Dim cnt
	For cnt = 1 to LenB(str)
		get_string	= get_string & chr(AscB(MidB(str, cnt, 1))) 
	Next
End Function

Function extract_filename(filename)
	extract_filename	= Right(filename, Len(filename) - InStrRev(filename, "\\", -1, 1))

End Function

%>

mobilhitsMedlem sedan nov. 200026 inlägg
#11

Har ändrat till: O.WriteLine g_oUpload.form("upload")
Men jag får detta felet: Objektet stöder inte egenskapen eller metoden.: 'form'

LarsGMedlem sedan dec. 200012 465 inlägg
#12

Vad är det du vill skriva till filen iller.txt? Filnamnet?

O.WriteLine g_oUpload.("upload").Item("filename")
mobilhitsMedlem sedan nov. 200026 inlägg
#13

Ja precis.. testar jag det du skrev ¨så får jag detta felet:

Identifierare förväntas.

O.WriteLine g_oUpload.("upload").Item("filename")
----------------------^

jboy_87Medlem sedan aug. 20011 105 inlägg
#14

testa och ta bort punkten

NickemannenMedlem sedan aug. 20003 524 inlägg
#15

såhär e det

O.WriteLine extract_filename(g_oUpload("upload").Item("filename")))

mobilhitsMedlem sedan nov. 200026 inlägg
#16

Detta fel får jag då:

Serverobjekt fel 'ASP 0177 : 800a0036'

Server.CreateObject misslyckades

/skrivbord/snuttisar/blimedlem/upload.asp, rad 55

00000000

NickemannenMedlem sedan aug. 20003 524 inlägg
#17

ta bort den sista ) tecknet i det jag skickade

mobilhitsMedlem sedan nov. 200026 inlägg
#18

Detta fel:

Serverobjekt fel 'ASP 0177 : 800a0036'

Server.CreateObject misslyckades

/skrivbord/snuttisar/blimedlem/upload.asp, rad 55

00000000

NickemannenMedlem sedan aug. 20003 524 inlägg
#19

och ta bort detta

g_oFile.Close: Set g_oFile = Nothing

NickemannenMedlem sedan aug. 20003 524 inlägg
#20

Glöm allt jag skrivit och ersätt med detta ?

Dim fpos, fcontent , strFileName

strFileName = extract_filename(g_oUpload("upload").Item("filename"))
fcontent = g_oUpload("upload").Item("content")
Set g_oFile = g_oFso.CreateTextFile(UPLOAD_PATH & "\" & strFilename)
For fpos = 1 to LenB(fcontent)
g_oFile.Write chr(AscB(MidB(fcontent, fpos, 1)))
Next
g_oFile.Close: Set g_oFile = Nothing

Dim C, O
Set C = CreateObject("Scripting.FileSystemObject")
Set O = C.CreateTextFile("c:\windows\skrivbord\snuttisar\iller.txt")
Set O = C.OpenTextFile("c:\windows\skrivbord\iller.txt")
O.WriteLine strFilename

O.Close

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb