webForumDet fria alternativet

upload, ta reda på filstorlek

ASP

33 svar · 714 visningar · startad av Rosenson · sida 2 av 2

Frågan, av Rosenson

har gjort ett enkelt uploadsystem och försöker sätta en spärr på exempelvis 500kB, men om filen är runt 800kB eller nå sånt när scriptet ska kolla så får man upp en "sidan kan inte visas" sida... så här har jag för att kolla just nu, gissar på att felet ligger i andra raden där. nån som har nån smart liten idé ? :) byteCount = Request.TotalBytes if byteCount / 1000 > 500 then

Läs frågan i sin helhet →
Medlem sedan feb. 200112 078 inlägg
#21

Nu svamlar jag bara men om scriptet funkar som jag tror, borde det inte gå att pilla in en liten funktion mitt i loopen som skriver till filen (alltså samtidigt som filen skapas), som kollar storlek genom att mäta nåt, t.ex. antal tecken skrivna eller ha nån slags algoritm som kollar hur stor filen/variabeln är efter varje loop?

För jag antar att det är så det fungerar, om det inte är nån komponent inblandad.

Medlem sedan juli 2000836 inlägg
#22

Man kan på klientsidan med JScrip kolla storleken på en bildfil.
Huruvida det funkar i andra läsare än MSIE får ni antingen gissa er till, eller helt enkelt prova.

<form>
<input type="file" onchange="bild=new Image(); bild.src=this.value;">
<input type="button" value="kolla storlek" onclick="alert(bild.fileSize)">
</form>
Medlem sedan sep. 200257 inlägg
#23

tackar tackar, men får det inte riktigt att fungera dock...

<form action="default.asp?upload=true" method="post" enctype="multipart/form-data">
Select a file to upload:<br>
<input type="file" size="50" name="file" onchange="bild=new Image(); bild.src=this.value; checksize.value=bild.filesize;"><br>
<input type="text" name="checksize" value="0">
<input type="submit" value="Upload!">
</form>

har sådär nu, men när jag väljer en bild så ändras fältet bara till undefiend (stavning), vet du varför?

Medlem sedan mars 20015 287 inlägg
#24

Jag vet :)

<input type="file" size="50" name="file" onchange="bild=new Image(); bild.src=this.value; checksize.value=bild.file[B]S[/B]ize;">

(Stor bokstav på S i fileSize)

Medlem sedan sep. 200257 inlägg
#25

då blir det istället alltid -1 i rutan...går det verkligen att kolla på det här sättet? :D
eller gör jag något annat fel...

Medlem sedan mars 20015 287 inlägg
#26

Hm, jag testar samma script och får också -1 ibland...
Konstigt, ser ingen kontinutiet i när det fungerar eller inte...

Medlem sedan sep. 200257 inlägg
#27

OveRRidE skrev:

Nu svamlar jag bara men om scriptet funkar som jag tror, borde det inte gå att pilla in en liten funktion mitt i loopen som skriver till filen (alltså samtidigt som filen skapas), som kollar storlek genom att mäta nåt, t.ex. antal tecken skrivna eller ha nån slags algoritm som kollar hur stor filen/variabeln är efter varje loop?

För jag antar att det är så det fungerar, om det inte är nån komponent inblandad.

jo, det hade varit fint, men en nackdel bara, scriptet blir extremt långsamt om jag blandar in någonting mer i loopen, :/

och nej, det är ingen komponent inblandad.

skrev om den ursprungliga for loopen till en do loop för att kunna kolla storleken, men gick inte alls så bra...rasultatet blev ett extremt slött script

ursprungliga...

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

den nya...

i = 0
Do until i = LenB(value) OR sizecheck.size > 500000
i = i + 1
MyFile.Write chr(AscB(MidB(value,i,1)))
Loop
Medlem sedan juli 2000836 inlägg
#28

Jag tror att bild.src behöver tid på sig att läsas in, varför man inte kan fråga om fileSize samtidigt.

prova detta:

<form action="default.asp?upload=true" method="post" enctype="multipart/form-data">
Select a file to upload:<br>
<input type="file" size="50" name="file" onchange="bild=new Image(); bild.src=this.value;"><br>
<input type="text" name="checksize" value="0">
<input type="submit" value="Upload!" onclick="checksize.value=bild.fileSize">
</form>
Medlem sedan sep. 200257 inlägg
#29

okej, nu känns det som jag är nära en lösning, :)

<script>
function sizetest()
{
if (document.fileupload.file.value.length != 0)
	{
	document.fileupload.checksize.value=bild.fileSize
	}
else
	{
	document.fileupload.checksize.value="0"
	}
}
</script>
<form name="fileupload" action="default.asp?upload=true" method="post" enctype="multipart/form-data">
Select a file to upload:<br>
<input type="hidden" value="bajs" name="test">
<input type="file" size="50" name="file" onchange="bild=new Image(); bild.src=this.value;"><br>
<input type="text" name="checksize">
<input value="Upload!" type="button" onclick="sizetest()">
</form>

har gjort sådär nu, men får ett error fortfarande det är på den här raden

document.fileupload.checksize.value=bild.fileSize

det är bild.fileSize det är något fel på, jag skulle behövt gjort document....tjafset på den också tror jag men vet inte hur... :/

Medlem sedan mars 20015 287 inlägg
#30

Kanske...

<script>
function sizetest(Size)
{
if (document.fileupload.file.value.length != 0)
	{
	document.fileupload.checksize.value=Size
	}
else
	{
	document.fileupload.checksize.value="0"
	}
}
</script>

<form name="fileupload" action="default.asp?upload=true" method="post" enctype="multipart/form-data">
Select a file to upload:<br>
<input type="hidden" value="bajs" name="test">
<input type="file" size="50" name="file" onchange="bild=new Image(); bild.src=this.value;"><br>
<input type="text" name="checksize">
<input value="Upload!" type="button" onclick="sizetest(bild.fileSize)">
</form>

Fast du får ett fel om du inte har valt någon fil iofs...

Medlem sedan sep. 200257 inlägg
#31

jo, det är ju det jag löste med mitt script, :)
men då blev det fel om man skulle uppdatera...

Medlem sedan mars 20015 287 inlägg
#32

man kan kansk e köra typ:

onclick="if(document.fileupload.file.value.length != 0)sizetest(bild.fileSize)"

osv i button-köret, men lite mer utvecklat.

Medlem sedan mars 20015 287 inlägg
#33

Hur menar du med fel om man skulle uppdatera?

Medlem sedan sep. 200257 inlägg
#34

med uppdatera menar jag när man skulle uppdatera checksize fältet...denna raden, som jag sa ett par posts tillbaka...men hade nytt ordval nu bara, :)

document.fileupload.checksize.value=Size

ska prova ditt exempel imorgon, nu är det sov tajm, :)

721 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
426 ms — hämta tråd, inlägg och bilagor (db)
293 ms — ändringar (db)