Hello,
I am uploading files to a server and I need to validate the extension
of its file and get the type from it.
For example:
.doc > Microsoft Word Document
.pdf > Adobe ...
Is there a way to do this?
And if not, where can I find a list of all extensions and names given
in Windows.
Thanks,
Miguel
Kevin Spencer - 19 Oct 2007 22:48 GMT
There is no absolutely reliable way to do this. The OS stores some file
associations. Internet Explorer stores some. IIS stores some. Your best bet
is to get a list of MIME types from the web and create your own data store
of them. This can be as simple as a flat file, or stored in a database.

Signature
HTH,
Kevin Spencer
Chicken Salad Surgeon
Microsoft MVP
> Hello,
>
[quoted text clipped - 15 lines]
>
> Miguel
Mark Rae [MVP] - 20 Oct 2007 00:07 GMT
> Is there a way to do this?
Following on from Kevin's reply, the following might be of some use to
you...
Supposing you have the following HTML control:
<input type="file" id="MyUpload" runat="server" />
you can add the accept tag which, depending on your browser, *might*
constrain the file patterns prompted for to match those with the
corresponding appropriate file extensions for the platform:
http://www.cs.tut.fi/~jkorpela/forms/file.html
E.g. <input type="file" id="MyUpload" runat="server"
accept="application/msword,application/pdf" />
Then, server-side, you can do the following:
// validate the file extention
if(Path.GetExtension(MyUpload.PostedFile.FileName) != ".doc" &&
Path.GetExtension(MyUpload.PostedFile.FileName) != ".pdf")
{
// do something here
}
// validate the MIME type
if(MyUpload.PostedFile.ContentType != "application/msword" &&
MyUpload.PostedFile.ContentType != "application/pdf")
{
// do something here
}
The <asp:FileUpload> webcontrol renders an HTML <input type="file"> control.
However, as Kevin states, this is not 100% reliable...

Signature
Mark Rae
ASP.NET MVP
http://www.markrae.net