How to restrict file type in FileUpload control
You cannot strictly restrict the file type, but if the browser supports it you can cause it to initially show just a certain type of file:
<form method="post" action="blahblah.blah">
<input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>
I found no direct solution for this problem.
This is my workaround using the RegularExpressionValidator:
<asp:FileUpload ID="fuImportImage" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server"
ControlToValidate="fuImportImage"
ErrorMessage="Only JPEG images are allowed"
ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Jj][Pp][Ee][Gg])$)">
</asp:RegularExpressionValidator>
In 2015, web browsers support the input accept attribute, so you can do this:
<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />
Keep in mind Visual Studio may show you a message about this as an invalid attribute of the FileUpload ASP tool, however.