Fájl kiterjesztése + méret ellenőrzése egymás után javascripttel
Sziasztok!
lenne egy javascriptes problémám. Van két function, ami külön külön működik, de egymás után már nem tudom őket lefuttatni. Az egyik function a fájl méretét ellenőrzi, a másik pedig a fájl kiterjesztését. Azt szeretném, hogy mindkettő function lefusson egymás után, tehát ellenőrizze a méretet is, meg a kiterjesztést is. Egyszerüen nem tudom összehozni a kettőt!
a kiterjesztésellenőrző function-ben a "RETURN TRUE" miatt rögtön továbbugrik a script, ha pedig "FALSE"-ra állítom, akkor minden működik, csak éppen megfelelő kiterjesztésnél se enged tovább :)
légyszives segítsetek! előre is köszönöm! íme a html fájl tartalma:
[colorer=html]
<html>
<head>
<title> Upload </title>
<script type="text/javascript" language="JavaScript">
<!--
function getImgSize(imgSrc, flag){
if(!flag){
var newImg = new Image();
imgSrc="file://localhost/"+imgSrc;
newImg.src =imgSrc;
}
else
var newImg = imgSrc
if (typeof newImg.complete=='boolean'&&(newImg.complete&&newImg.height*1>0)){
var height = newImg.height;
var width = newImg.width;
var size = newImg.fileSize;
}
if (size > 100000) {
alert ('tooo big!');
return false;
}
else if (typeof newImg.complete=='boolean'){
setTimeout(function(){getImgSize(newImg,'x')}, 3000);
}
else alert('Image cannot be evaluated for size');
}
function ExtensionsOkay(form) {
var message = "Csak JPG képet tölthet fel!";
var extension = new Array();
var fieldvalue = document.getElementById('image').value.toLowerCase();
extension[0] = ".jpg";
extension[1] = ".jpeg";
var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.'));
for(var i = 0; i < extension.length; i++) {
if(thisext == extension[i]) {
getImgSize(fieldvalue); return true;
}
}
alert(message);
return false;
}
//-->
</script>
</head>
<body>
<form method="POST" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data" onSubmit="return ExtensionsOkay(this);">
<table align="center" width="20%" height="20%">
<tr>
<td align="center"><b>FELTÖLTÉS</b></td>
</tr>
<tr>
<td align="center"><input type="file" name="image" id="image"></td>
</tr>
<tr>
<td align="left"><input type="Submit" name="Submit" value=" OK "></td>
</tr>
</table>
</form>
</body>
</html>
[/oolorer]
■ lenne egy javascriptes problémám. Van két function, ami külön külön működik, de egymás után már nem tudom őket lefuttatni. Az egyik function a fájl méretét ellenőrzi, a másik pedig a fájl kiterjesztését. Azt szeretném, hogy mindkettő function lefusson egymás után, tehát ellenőrizze a méretet is, meg a kiterjesztést is. Egyszerüen nem tudom összehozni a kettőt!
a kiterjesztésellenőrző function-ben a "RETURN TRUE" miatt rögtön továbbugrik a script, ha pedig "FALSE"-ra állítom, akkor minden működik, csak éppen megfelelő kiterjesztésnél se enged tovább :)
légyszives segítsetek! előre is köszönöm! íme a html fájl tartalma:
[colorer=html]
<html>
<head>
<title> Upload </title>
<script type="text/javascript" language="JavaScript">
<!--
function getImgSize(imgSrc, flag){
if(!flag){
var newImg = new Image();
imgSrc="file://localhost/"+imgSrc;
newImg.src =imgSrc;
}
else
var newImg = imgSrc
if (typeof newImg.complete=='boolean'&&(newImg.complete&&newImg.height*1>0)){
var height = newImg.height;
var width = newImg.width;
var size = newImg.fileSize;
}
if (size > 100000) {
alert ('tooo big!');
return false;
}
else if (typeof newImg.complete=='boolean'){
setTimeout(function(){getImgSize(newImg,'x')}, 3000);
}
else alert('Image cannot be evaluated for size');
}
function ExtensionsOkay(form) {
var message = "Csak JPG képet tölthet fel!";
var extension = new Array();
var fieldvalue = document.getElementById('image').value.toLowerCase();
extension[0] = ".jpg";
extension[1] = ".jpeg";
var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.'));
for(var i = 0; i < extension.length; i++) {
if(thisext == extension[i]) {
getImgSize(fieldvalue); return true;
}
}
alert(message);
return false;
}
//-->
</script>
</head>
<body>
<form method="POST" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data" onSubmit="return ExtensionsOkay(this);">
<table align="center" width="20%" height="20%">
<tr>
<td align="center"><b>FELTÖLTÉS</b></td>
</tr>
<tr>
<td align="center"><input type="file" name="image" id="image"></td>
</tr>
<tr>
<td align="left"><input type="Submit" name="Submit" value=" OK "></td>
</tr>
</table>
</form>
</body>
</html>
[/oolorer]
helo
pseudo kód:
if checkExt
if checkSize()
return true
else
write size error
return false
else
write ext error
return false
return false // ez csak a szimmetria miatt, meg mert pesszimista vagyok