public static java.lang.String | getCorrectedContentType(java.lang.String contentType, java.lang.String fileName)
if (contentType != null) {
if (contentType.startsWith("text")) {
// Browser returns text/* for some uncommon types
// like hotmedia or flash. We'll handle this case here.
int i = fileName.lastIndexOf(".");
if (i != -1) {
String ext = fileName.substring(i+1).toLowerCase();
String type = com.sun.media.MimeManager.getMimeType(ext);
if (type != null)
return type;
}
// TODO: Move this warning to protocol/DataSource.java
com.sun.media.Log.error("Warning: The URL may not exist. Please check URL");
return contentType;
}
if (contentType.equals("audio/wav"))
return "audio/x-wav";
else if (contentType.equals("audio/aiff"))
return "audio/x-aiff";
else if (contentType.equals("application/x-troff-msvideo"))
// $$ WORKAROUND DUE TO WRONG MIME TYPE GIVEN FOR AVI
//System.out.print("MIME TYPE BUG: ");
//System.out.println("application/x-troff-msvideo ==> video/x-msvideo");
return "video/x-msvideo";
else if (contentType.equals("video/msvideo"))
return "video/x-msvideo";
else if (contentType.equals("video/avi"))
return "video/x-msvideo";
else if (contentType.equals("audio/x-mpegaudio"))
return "audio/mpeg";
}
// Catch a few well known types even if they are not defined
// in the system MIME table.
String type = null;
int i = fileName.lastIndexOf(".");
if (i != -1) {
String ext = fileName.substring(i+1).toLowerCase();
type = com.sun.media.MimeManager.getMimeType(ext);
}
if (type != null)
return type;
if (contentType != null)
return contentType;
else
return "content/unknown";
|