Page 1 of 1

simple JS file type check by extension [solved]

Posted: Fri Mar 09, 2007 2:00 pm
by s.dot
So this piece of code is inside of one of my functions. I just want to make sure that the file being uploaded ends in .jpg, .jpeg, .gif, .png... before I do server side validation of course. It's just a little convenience to the end-user.

snippet:

Code: Select all


var docform = document.forms[0];

if(
	!docform.ep_image.value.toLowerCase.match(/.+\.jpg$/) &&
	!docform.ep_image.value.toLowerCase.match(/.+\.jpeg$/) &&
	!docform.ep_image.value.toLowerCase.match(/.+\.gif$/) &&
	!docform.ep_image.value.toLowerCase.match(/.+\.png$/)
)
{
	alert('Invalid Image Type.  Valid file types are: JPEG, JPG, PNG, GIF');
	docform.submit.disabled = false;
	docform.submit.value = 'Upload Image';
	return false;
}
I get the error: "Object doesn't support this property or method".

Posted: Fri Mar 09, 2007 4:37 pm
by s.dot

Code: Select all

var imgvalue = docform.ep_image.value.toLowerCase();
if(
	!imgvalue.match(/^.+jpg$/) &&
	!imgvalue.match(/^.+jpeg$/) &&
	!imgvalue.match(/^.+gif$/) &&
	!imgvalue.match(/^.+png$/)
)
{
	alert('Invalid Image Type.  Valid file types are: JPEG, JPG, PNG, GIF');
	docform.submit.disabled = false;
	docform.submit.value = 'Upload Image';
	return false;
}
that seemed to do the trick

Posted: Fri Mar 09, 2007 6:34 pm
by feyd
toLowerCase.match is the fault of the previous attempt.

Code: Select all

document.forms['docform'].elements['ep_image'].value.match(/\.(?:jpe?g|gif|png)$/i);