下面列出了java.net.URLConnection#getFileNameMap ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private String guessMimeType(String path)
{
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String contentTypeFor = null;
try
{
contentTypeFor = fileNameMap.getContentTypeFor(URLEncoder.encode(path, "UTF-8"));
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
if (contentTypeFor == null)
{
contentTypeFor = "application/octet-stream";
}
return contentTypeFor;
}
@Override
public FileContentInfo create(final FileContent fileContent) {
String contentType = null;
final String name = fileContent.getFile().getName().getBaseName();
if (name != null) {
final FileNameMap fileNameMap = URLConnection.getFileNameMap();
contentType = fileNameMap.getContentTypeFor(name);
}
// optimize object creation for common case
if (contentType == null) {
return NULL_INFO;
} else {
return new DefaultFileContentInfo(contentType, null);
}
}
/**
* Invokes the appropriate probe method to guess a file's content type,
* and checks that the content type's syntax is valid.
*/
@Override
public final String probeContentType(Path file) throws IOException {
if (file == null)
throw new NullPointerException("'file' is null");
String result = implProbeContentType(file);
// Fall back to content types property.
if (result == null) {
Path fileName = file.getFileName();
if (fileName != null) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
result = fileNameMap.getContentTypeFor(fileName.toString());
}
}
return (result == null) ? null : parse(result);
}
private String guessMimeType(String path)
{
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String contentTypeFor = null;
try
{
contentTypeFor = fileNameMap.getContentTypeFor(URLEncoder.encode(path, "UTF-8"));
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
if (contentTypeFor == null)
{
contentTypeFor = "application/octet-stream";
}
return contentTypeFor;
}
private String guessMimeType(String path)
{
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String contentTypeFor = fileNameMap.getContentTypeFor(path);
if (contentTypeFor == null)
{
contentTypeFor = "application/octet-stream";
}
return contentTypeFor;
}
/**
* 根据文件名解析contentType
*
* @param name
* @return
*/
public static String getMimeType(String name) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String contentTypeFor = null;
try {
contentTypeFor = fileNameMap.getContentTypeFor(URLEncoder.encode(name, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (contentTypeFor == null) {
contentTypeFor = "application/octet-stream";
}
return contentTypeFor;
}
/**
* Test method demonstrating the usage of FileNameMap from URLConnection
* to resolve MIME type of a file.
*
*/
@Test
public void whenUsingGetFileNameMap_thenSuccess() {
final File file = new File(FILE_LOC);
final FileNameMap fileNameMap = URLConnection.getFileNameMap();
final String mimeType = fileNameMap.getContentTypeFor(file.getName());
assertEquals(mimeType, PNG_EXT);
}
private void requestIntent(Uri uri) {
Intent intent = new Intent(Intent.ACTION_VIEW);
FileNameMap mime = URLConnection.getFileNameMap();
String mimeType = mime.getContentTypeFor(uri.getPath());
intent.setDataAndType(uri, mimeType);
try {
mActivity.startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(mActivity, OResource.string(mActivity, R.string.toast_no_activity_found_to_handle_file),
Toast.LENGTH_LONG).show();
}
}
/**
* 根据文件名获取MIME类型
*/
public static MediaType guessMimeType(String fileName) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
fileName = fileName.replace("#", ""); //解决文件名中含有#号异常的问题
String contentType = fileNameMap.getContentTypeFor(fileName);
if (contentType == null) {
return MediaType.parse("application/octet-stream");
}
return MediaType.parse(contentType);
}
public FileHandler(LifecycleManager lm) {
this.lm = lm;
fileNameMap = URLConnection.getFileNameMap();
mappings = new HashStore<File>();
keys = new ArrayList<String>();
timeFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
DateFormat.MEDIUM);
}
private MediaType guessMimeType(String path) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
path = path.replace("#", ""); //解决文件名中含有#号异常的问题
String contentType = fileNameMap.getContentTypeFor(path);
if (contentType == null) {
contentType = "application/octet-stream";
}
return MediaType.parse(contentType);
}
public String getFileMimeType(String aUrl)
{
try
{
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String type = fileNameMap.getContentTypeFor(aUrl);
return type;
}
catch (Exception e)
{
KCLog.e(e);
}
return null;
}
private static String guessMimeType(String path) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String contentTypeFor = fileNameMap.getContentTypeFor(path);
if (contentTypeFor == null) {
contentTypeFor = "application/octet-stream";
}
return contentTypeFor;
}
public static String getFileMimeType(String path) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String contentTypeFor = fileNameMap.getContentTypeFor(path);
if (contentTypeFor == null) {
contentTypeFor = "application/octet-stream";
}
return contentTypeFor;
}
/** 根据文件名获取MIME类型 */
public static MediaType guessMimeType(String fileName) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
fileName = fileName.replace("#", ""); //解决文件名中含有#号异常的问题
String contentType = fileNameMap.getContentTypeFor(fileName);
if (contentType == null) {
return HttpParams.MEDIA_TYPE_STREAM;
}
return MediaType.parse(contentType);
}
/**
* Get the MIME type for a file name. This method is simply a convenient
* front-end for <tt>java.net.FileNameMap.getContentTypeFor()</tt>,
* but it applies the supplied default when <tt>getContentTypeFor()</tt>
* returns null (which can happen).
*
* @param fileName the file name
* @param defaultMIMEType the default MIME type to use if one cannot
* be determined from the file name, or null to
* use {@link #DEFAULT_MIME_TYPE}
*
* @return the MIME type to use
*
* @see #MIMETypeForFile(File,String)
* @see #MIMETypeForFileName(String)
* @see #MIMETypeForFileExtension(String)
* @see #MIMETypeForFileExtension(String,String)
* @see #DEFAULT_MIME_TYPE
*/
public static String MIMETypeForFileName (String fileName, // NOPMD
String defaultMIMEType)
{
String mimeType = null;
FileNameMap fileNameMap = URLConnection.getFileNameMap();
// Check ours first.
loadMappings();
String extension = FileUtil.getFileNameExtension (fileName);
mimeType = (String) extensionToMIMETypeMap.get (extension);
if (mimeType == null)
{
// Check the system one.
mimeType = fileNameMap.getContentTypeFor (fileName);
}
if (mimeType != null)
{
if (mimeType.equals (DEFAULT_MIME_TYPE) &&
(defaultMIMEType != null))
{
// Substitute the caller's default, if there is one, on the
// assumption that it'll be more useful.
mimeType = defaultMIMEType;
}
}
else
{
mimeType = (defaultMIMEType == null) ? DEFAULT_MIME_TYPE
: defaultMIMEType;
}
return mimeType;
}
public static String getMimeTypeFromPath(String path) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
return fileNameMap.getContentTypeFor(new File(path).getName());
}
public static String getContentType(File f) {
MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String ct = fileNameMap.getContentTypeFor(f.getName());
return StringUtil.isBlank(ct) ? fileTypeMap.getContentType(f) : ct;
}
public static String getContentTypeByFileName(String fileName) {
FileNameMap mime = URLConnection.getFileNameMap();
return mime.getContentTypeFor(fileName);
}
/**
* 获取文件的Mime类型.
*
* @param file 需要处理的文件
* @return 返回文件的mime类型
* @throws java.io.IOException
*/
public static String mimeType(String file) throws java.io.IOException {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
return fileNameMap.getContentTypeFor(file);
}