Topbar
Topbar
Sign in
|
Join
|
Client Center
Home
Products
Client Center
Contact
Purchase
Support forums
»
Products
»
Ajax Uploader
»
Re: How can I get the content/mime type?
Re: How can I get the content/mime type?
10-15-2009, 9:04 AM
delamitry
Joined on 03-06-2009
Houston/Los Angeles/Springfield
Posts 14
Re: How can I get the content/mime type?
Reply
Quote
[DllImport(@
"urlmon.dll"
, CharSet = CharSet.Auto)]
private
extern
static
System.UInt32 FindMimeFromData(
System.UInt32 pBC,
[MarshalAs(UnmanagedType.LPStr)] System.String pwzUrl,
[MarshalAs(UnmanagedType.LPArray)]
byte
[] pBuffer,
System.UInt32 cbSize,
[MarshalAs(UnmanagedType.LPStr)] System.String pwzMimeProposed,
System.UInt32 dwMimeFlags,
out
System.UInt32 ppwzMimeOut,
System.UInt32 dwReserverd
);
public
string
getMimeFromFile(
string
filename)
{
if
(!File.Exists(filename))
throw
new
FileNotFoundException(filename +
" not found"
);
byte
[] buffer =
new
byte
[256];
using
(FileStream fs =
new
FileStream(filename, FileMode.Open))
{
if
(fs.Length >= 256)
fs.Read(buffer, 0, 256);
else
fs.Read(buffer, 0, (
int
)fs.Length);
}
try
{
System.UInt32 mimetype;
FindMimeFromData(0,
null
, buffer, 256,
null
, 0,
out
mimetype, 0);
System.IntPtr mimeTypePtr =
new
IntPtr(mimetype);
string
mime = Marshal.PtrToStringUni(mimeTypePtr);
Marshal.FreeCoTaskMem(mimeTypePtr);
return
mime;
}
catch
(Exception e)
{
return
"unknown/unknown"
;
}
}
Give that a shot
View Complete Thread