webForumDet fria alternativet

angående upload script

2 svar · 128 visningar · startad av daniel_jn

daniel_jnMedlem sedan maj 20013 inlägg
#1

Hej

Det här uploadscriptet hittade jag lite längre ner i detta forum.

När man laddar upp en fil så
vill jag att filnamnet ska bli
en 1 t.e.x 1.gif, 1.txt osv..

jag vet att jag kan använda mig av en variabel t.e.x U = 1
men vart nånstans i det här scriptet ska jag lägga i variablen U

<% @EnableSessionState = False %>
<% Option Explicit %>
<% Response.Expires = 0 %>
<%
Dim UPLOAD_PATH
UPLOAD_PATH = ("/home/b1580/public_html/nyheter/gamecube/bilder/")

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

	Response.Redirect Request.ServerVariables("SCRIPT_NAME")
End If

Response.Write "\<html\>\<body\>\<table\>"
Response.Write "\<tr\>\<td\>\<hr\>\</td\>\</tr\>"
For Each g_oFile In g_oFolder.Files
	Response.Write "\<tr\>\<td\>\<a href=""files/" & g_oFile.Name & """\>" & g_oFile.name & "\</a\>\</td\>\</tr\>"
Next
Response.Write "\<tr\>\<td\>\<hr\>\</td\>\</tr\>"
Response.Write "\<tr\>\<td align=""right""\>\<form name=""frmUpload"" method=""post"" enctype=""multipart/form-data"" action=""" & Request.ServerVariables("SCRIPT_NAME") & """\>"
Response.Write "\<input type=""file"" name=""upload""\> &nbsp; \<input type=""submit"" value=""upload""\>\</td\>\</tr\>"
Response.Write "\</table\>\</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

%>

rymdknarkMedlem sedan maj 2000175 inlägg
#2

raden där det står:
Set g_oFile = g_oFso.CreateTextFile(UPLOAD_PATH & "" & extract_filename(g_oUpload("upload").Item("filename")))

kan vara typ:
Set g_oFile = g_oFso.CreateTextFile("vilketfilnamnduvill.fil")

daniel_jnMedlem sedan maj 20013 inlägg
#3

Hej igen

tack för svaret
nu undrar jag en till sak

Om man klickar på upload knappen utan att klicka på bläddra knappen och då formuläret är helt tomt så ska en bild på servern laddas upp till bildkatalogen på servern istället

Det här är sökvägen till den katalogen där bilden laddas upp från
("/home/user/public_html/nyheter/

Jag vet att jag kan använda mig av en if sats men är inte säker på hur jag ska göra

tacksam försvar

//Daniel

("/home/b1580/public_html/nyheter/

134 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)