webForumDet fria alternativet

kontrolera filstorlek (pixlar) vid upload.

ASP

11 svar · 615 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

använder clsupload (vad det nu är) och detta är den viktiga delen av min kod
Vill kontrollera bildens höjd och bredd och jämföra med två variablar jag har.
Går detta att fixa?

Set objUpload = New overrUpload

	'## -- get the first file for upload --
	Set objFile = objUpload.Form("file")
	
		strName = intLastID
strExt = right(objFile.Filename, 4)
	
		'## -- check if we have a file --
		If objFile.IsFile Then
			'## -- file exists. proceed saving file. --
			Call objFile.SaveToFile(Server.MapPath("images/" & strName & strExt), True)
			'## -- check if any errors occured --
			If objFile.HasErrors Then
				blnErr = True
				'## -- HUSTON! we got errors. proceed --
				'## -- get all error messages --
				varyErrors = objFile.GetErrors()
				'## -- loop through all errors --
				For iErr = 0 TO UBound(varyErrors)
					'## -- print out error --
					Response.Write(varyErrors(iErr) & "<hr>")
				Next
			End If
		End If
	Set objFile = Nothing

%>
<!--#INCLUDE FILE="inc/clsupload.asp"-->
<%
Medlem sedan okt. 20041 556 inlägg
#2

Eftersom att clsupload inte verkar vara en tredjepartskomponent så tror jag att du kommer att få svårigheter att kontrollera hur stor en bild är. Du får skaffa en komponent för det. asp-image, asp-upload eller liknande.

Medlem sedan aug. 20011 087 inlägg
#3

Ok det var synd =/

Medlem sedan juni 200032 967 inlägg
#4

Man kan ju alltid använda ett litet javascript som kan posta med bredd och höjd från formuläret. Först och främst; i formuläret:

<input type="hidden" id="imgWidth" name="imgWidth">
<input type="hidden" id="imgHeight" name="imgHeight"

Javascriptfunktionen:

function checkSize() {
	fileobj = document.getElementById('id_på_ditt_file-fält').value;
	imgobj = new Image();
	imgobj.src = "file://" + obj.value;
	document.getElementById('imgWidth').value = imgobj.width;
	document.getElementById('imgHeight').value = imgobj.height;
	return true;
}

Kör funktionen onsubmit på formuläret, så bör du kunna requesta in imgHeight och imgWidth på mottagande asp-sida också.

Du kanske borde kontrollera i checkSize() att det verkligen är en bildfil man valt, men lite får du pilla på själv. ;)

obs! Koden är aningen otestad...

Lycka till!

Medlem sedan aug. 20011 087 inlägg
#5

Får det inte att fungera hur kör jag den på onsubmit?

testade detta men inget händer den går bara vidare till nästa sida oavsett ifall det stämmer eller ej.

onsubmit="checksize()" på form taggen och detta i head

<script type="text/javascript">
function checksize() {
	fileobj = document.getElementById('file').value;
	imgobj = new Image();
	imgobj.src = "file://" + obj.value;
	document.getElementById('width').value = imgobj.width;
	document.getElementById('height').value = imgobj.height;
	return true;
}
</script>
Medlem sedan dec. 19996 721 inlägg
#6

onsubmit="return checksize()"

Medlem sedan aug. 20011 087 inlägg
#7

funka ändå inte.. den bara skickas vidare oavsett..

Medlem sedan dec. 19996 721 inlägg
#8

Skickas vidare ska man, men du har väl förhoppningsvis fått med värdena imgWidth och imgHeight.

Ändra dock en rad i scriptet

imgobj.src = "file://" + [b]fileobj[/b].value;

Vill du kontrollera storleken redan på klienten så kan du självklart passa på att göra det i checkSize-funktionen.

Medlem sedan aug. 20011 087 inlägg
#9

ok nu fattar jag hur det funkar, dessvärre funkar det ändå ej, oavsett vilken bild jag väljer får jag med värderna 30 och 28.. himla konstigt..

Medlem sedan aug. 20011 087 inlägg
#10

tror det beror på felvända \ i fileobj.value dom måste bytas mot / då verkar det funka, hur gör jag det?

Medlem sedan aug. 20011 087 inlägg
#11

Löste det med hjälp av denna tråden.. kanske inte ultimat men det fungerar iaf..

http://www.webforum.nu/showthread.php?t=96943&highlight=h�jd+bredd+bild

Medlem sedan juni 200032 967 inlägg
#12

Kan du visa hur hela koden ser ut nu?

mvh

283 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
146 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
145 ms — ändringar (db)