webForumDet fria alternativet

Uploadscript utan komponent 2

93 svar · 6 683 visningar · startad av OveRRidE · sida 4 av 5

hellboyMedlem sedan aug. 200349 inlägg
#61

ja, jag får ta det från början tror jag.. ingen felmeddelande kommer upp, bara "sidan kan inte visas", och IIS lägger av p.g.a. överbelastning typ...

eddy1Medlem sedan aug. 2001969 inlägg
#62

skumt

får följande fel:

ERROR: Couldn´t find the form-field - txtname - in the collection.

KÖr den senaste versionen

hellboyMedlem sedan aug. 200349 inlägg
#63

Vad heter ditt input-form då?

eddy1Medlem sedan aug. 2001969 inlägg
#64

-

form1

jag laddade ju ner 1.5.3 och har inte ändrat något, för det fungerar ju inte

hellboyMedlem sedan aug. 200349 inlägg
#65

Ja du... kolla igenom alla formulärnamn en gång till, så att dom stämmer med koden.. annars vet jag inte..

LR^evil.sidMedlem sedan maj 2002560 inlägg
#66

Det gick inte att kontrollera hur stor filen var innan man laddade upp den eller?

Kanske nån har en hint hur jag skall göra så jag kan lägga till det själv...

LR^evil.sidMedlem sedan maj 2002560 inlägg
#67

Micklade lite med en kodsnutt jag hittade på msdn ang. läsa av filstorleken innan man laddar upp filen. Den rödmarkerade koden är det jag lagt till.

<%
'Adjust this depending on the size of the files you'll
'be expecting; longer timeout for larger files!
Server.ScriptTimeout = 5400

Const ForWriting = 2
Const TristateTrue = -1
CrLf = Chr(13) & Chr(10)

'This function retreives a field's name
Function GetFieldName(infoStr)
	sPos = InStr(infoStr, "name=")
	EndPos = InStr(sPos + 6, infoStr, Chr(34) & ";")
	If EndPos = 0 Then
		EndPos = inStr(sPos + 6, infoStr, Chr(34))
	End If
	GetFieldName = Mid(infoStr, sPos + 6, endPos - _
		(sPos + 6))
End Function

'This function retreives a file field's filename
Function GetFileName(infoStr)
	sPos = InStr(infoStr, "filename=")
	EndPos = InStr(infoStr, Chr(34) & CrLf)
	GetFileName = Mid(infoStr, sPos + 10, EndPos - _
		(sPos + 10))
End Function

'This function retreives a file field's MIME type
Function GetFileType(infoStr)
	sPos = InStr(infoStr, "Content-Type: ")
	GetFileType = Mid(infoStr, sPos + 14)
End Function

'Yank the file (and anything else) that was posted
PostData = ""
Dim biData
biData = Request.BinaryRead(Request.TotalBytes)
'Careful! It's binary! So, let's change it into
'something a bit more manageable.
For nIndex = 1 to LenB(biData)
	PostData = PostData & Chr(AscB(MidB(biData,nIndex,1)))
Next
'Having used BinaryRead, the Request.Form collection is
'no longer available to us. So, we have to parse the
'request variables ourselves!
'First, let's find that encoding type!
ContentType = Request.ServerVariables( _
	"HTTP_CONTENT_TYPE")
ctArray = Split(ContentType, ";")
'File posts only work well when the encoding is 
'"multipart/form-data", so let's check for that!
If Trim(ctArray(0)) = "multipart/form-data" Then
	ErrMsg = ""
	' grab the form boundary...
	bArray = Split(Trim(ctArray(1)), "=")
	Boundary = Trim(bArray(1))
	'Now use that to split up all the variables!
	FormData = Split(PostData, Boundary)
	'Extract the information for each variable and its data
	Dim myRequest, myRequestFiles(9, 3) 
	Set myRequest = CreateObject("Scripting.Dictionary")
	FileCount = 0
	For x = 0 to UBound(FormData)
		'Two CrLfs mark the end of the information about
		'this field; everything after that is the value
		InfoEnd = InStr(FormData(x), CrLf & CrLf)
		If InfoEnd > 0 Then
			'Get info for this field, minus stuff at the end
			varInfo = Mid(FormData(x), 3, InfoEnd - 3)
			'Get value for this field, being sure to skip
			'CrLf pairs at the start and the CrLf at the end
			varValue = Mid(FormData(x), InfoEnd + 4, _
				Len(FormData(x)) - InfoEnd - 7)
			'Is this a file?
			If (InStr(varInfo, "filename=") > 0) Then
				'Place it into our files array
				'(While this supports more than one file
				'uploaded at a time we only consider the
				'single file case in this example)
				myRequestFiles(FileCount, 0) = GetFieldName( _
					varInfo)
				myRequestFiles(FileCount, 1) = varValue
				myRequestFiles(FileCount, 2) = GetFileName( _
					varInfo)
				myRequestFiles(FileCount, 3) = GetFileType( _
					varInfo)
				FileCount = FileCount + 1
			Else
				'It's a regular field
				myRequest.add GetFieldName(varInfo), varValue
			End If
		End If
	Next
Else
	ErrMsg = "Wrong encoding type!"
End If

'Save the actual posted file
'If supporting more than one file, turn this into a loop!

[red]Dim Tmp
Tmp = Split(PostData, Left(PostData, InStr(PostData, VBCrLf)))
If Len(Right(Tmp(1), Len(Tmp(1)) - InStr(Tmp(1), VBCrLf & VBCrLf))) - 5 <= 60000 Then[/red]
Set lf = server.createObject("Scripting.FileSystemObject")
If myRequest("filename") = "original" Then
	'Use the filename that came with the file
	'At this point, you need to determine what sort of
	'client sent the file. Macintoshes only send the file
	'name, with no path information, while Windows clients
	'send the entire path of the file that was selected
	BrowserType = UCase(Request.ServerVariables( _
		"HTTP_USER_AGENT"))
	If (InStr(BrowserType, "WIN") > 0) Then
		'It's Windows; yank the filename off the end!
		sPos = InStrRev(myRequestFiles(0, 2), "\")
		fName = Mid(myRequestFiles(0, 2), sPos + 1)
	End If
	If (InStr(BrowserType, "MAC") > 0) Then
		'It's a Mac. Simple.
		'(Mac filenames can contain characters that are 
		'illegal under Windows, so look out for that!)
		fName = myRequestFiles(0, 2)
	End If
	'If your upload path is different, set that here
	FilePath = "./" & fName
Else
	'Use the user-specified filename instead
	'If your upload path is different, set that here
	FilePath = "./" & myRequest("userSpecifiedName")
End If
SavePath = Server.MapPath(FilePath)
Set SaveFile = lf.CreateTextFile(SavePath, True)
SaveFile.Write(myRequestFiles(0, 1))
SaveFile.Close
[red]Else
	ErrMsg = "File To Large <font color = '#ff0000'>( Max 60000 Bytes )</font>"
End If[/red]

'IIS may hang if you don't explicitly return SOMETHING.
'So, redirect to another page or provide some kind of
'feedback below...
%>
<html>
<body>
<% If ErrMsg = "" Then %>
	<br><br>Thanks for the file! It was yummy!
<% Else %>
	<%= ErrMsg %>
<% End If %>
<hr><br>

ser väl i det stora hela ut som att det skulle gå att implementera i uploadklassen... kanske vore något

Cannabis_TomtenMedlem sedan juli 20015 107 inlägg
#68

Re: skumt

eddy1 skrev:

får följande fel:

ERROR: Couldn´t find the form-field - txtname - in the collection.

KÖr den senaste versionen

får samma problem som dej! =/
Jag har inte rört nått i koden utan felet ingick från fabrik :D

eddy1Medlem sedan aug. 2001969 inlägg
#69

skumt..

Jag skrotade den iden att använda den applikation. Kör med ASPUpload: det funkar!!

PatrikBMedlem sedan mars 20002 836 inlägg
#70

Det är ett fält som fattas i formuläret i index.asp .... tyvärr ....

Ska försöka att hinna uppdatera filen igen + lägga till egenskapen FileSize .... men, för att få fram det behöver man faktiskt ladda upp hela filen först .... annars får man lösa det med client-side javascript .... funkar dock inte i alla browsers ...

När det kommer kan jag inte lova ... måste landa ordentligt på nya jobbet först. Mycket nytt att lära sig ...

cya,
/PatrikB

cya,
/PatrikB

mattiasnordinMedlem sedan maj 20012 080 inlägg
#71

Hej alla,

Jag har laddat hem den senaste versionen av uploadskriptet. Innehåller upload.asp, index.asp & clsUpload.asp men inte någon hjälpfil med något exempel. Det skulle vara trevligt att ha.

Var ställer man in var filerna ska kopieras någonstans?

Rakt "out of the box" installationen ger följande fel:

ERROR: Couldn´t find the form-field - txtname - in the collection.

Antar att jag ska ställa in någon parameter någonstans. Men var?

Mvh
M

OveRRidEMedlem sedan feb. 200112 078 inlägg
#72

Nej, parameter saknas knappast.

På rad 15 i filen 'upload.asp' anropas forumlärelementet 'txtname', som inte fanns i filen som postar till formuläret; 'index.asp'.

Jag har nu lagt till detta fält och den uppdaterade versionen 1.5.4 väntas komma så fort voigtann har godkänt inlägget i ASP-script-forumet.

Dessutom finns det en Readme-fil som visar gränssnittet i klassen. Den heter ReadMe.txt och ligger i zip-filen, som vanligt.

mattiasnordinMedlem sedan maj 20012 080 inlägg
#73

Det låter spännande! Väntar med iver på att få sätta tänderna i 1.5.4.

:-)

mattiasnordinMedlem sedan maj 20012 080 inlägg
#74

Vad är status på version 1.5.4 ?

Mvh
Mattias

OveRRidEMedlem sedan feb. 200112 078 inlägg
#75

Det handlar tydligen om en bugg i forumet just nu, som sätter stopp för publiceringen av scriptet. Filerna är postade och väntar bara på att godkännas av voigtann, såfort dev-gruppen har löst problemet med filen/filerna.

Tålamod. :)

mattiasnordinMedlem sedan maj 20012 080 inlägg
#76

Nu finns 1.5.4 att ladda ner! Kul.

Går det att begränsa uploads beroende på filextention och filstorlek eller får man skriva det själv?

Tack. Det fungerar i övrigt utmärkt. Bra jobbat!

HavregrynMedlem sedan juni 200288 inlägg
#77

Har i och för sig inte testat den senaste versionen av upload-scriptet, men jag har för mig att jag i det gamla försökte skicka med en request.form, men utan att lyckas. Dvs, jag loopade upp alla mappar och undermappar i en katalog, så att man skulle kunna välja vilken mapp man ville att filen skulle sparas i.
men jag har för mig att jag då fick ett felmeddelande, där det stod att request.form måste omvandlas till binärt eller något sådant. Hur gör man för att kunna skicka med forms och querystrings?

En annan fråga. Borde det inte kunna gå att ordna så att man själv kan välja på vilket namn man vill ge filen, istället för att använda sig av det namn man har på datorn?

ConnyFoxMedlem sedan aug. 20011 087 inlägg
#78

Jag lyckas inte få bytt namn på filen utan att bli av med filändelsen, hur löser jag det? (har senaste verren)

MickeA.comMedlem sedan feb. 20034 441 inlägg
#79

Hej

Hur ska jag editera filen om jag endast vill ha EN fil att ladda upp. ? Får ett felmeddelande avv "Object Krävs".

Det jag gjort är att ha satt anotherFile2 till type 'hidden'.

Så, vad ska jag göra?

Det skumma är att trots detta felmess så laddas filen upp...?

Tack !!!

JohanDavidsonMedlem sedan aug. 200310 inlägg
#80

Uploadscriptet funkar inte för mig...

Hejhopp!

Hittade detta Uploadscriptet och tänkte testa det på mitt webhotell som heter B-one. Jag får det tyvärr inte att fungera, kan det bero på webhotellet???

Felmeddelandet jag får är följande (och jag har inte ändrat någonting på filerna):

Microsoft VBScript compilation error '800a03ea' 

Syntax error 

/thai/upload.asp, line 14 

Set objUpload = New overrUpload
----------------^

All hjälp med detta vore tacknämligt! Om någon annan har en bra metod för att ladda upp filer på ovan nämnda webhotell så är det oxå till stor hjälp!!!
greetings
/Johan...

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