FileMimeTypes

play.api.http.FileMimeTypes

Defines behavior for file type mappings.

This trait is primarily used with results and assets that send files, for users who want to send a file without having to specify an explicit content type. For example, a user can send a file with ".json":

implicit val fileMimeTypes = ...
val file = new File("test.json")
Ok.sendFile(file) // <-- uses implicit fileMimeTypes

and have a "json" -> "application/json" mapping done implicitly based off the file extension. The Assets controller handles this mapping automatically.

In a controller, an implicit FileMimeTypes object can either be defined explicitly:

class MyController @Inject()(implicit val fileMimeTypes: FileMimeTypes) extends BaseController {
  def sendFile() = ...
}

or, if play.api.mvc.BaseController is extended, then an implicit fileMimeTypes instance is already made available from play.api.mvc.ControllerComponents, meaning that no explicit import is required:

class MyController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
 def sendFile() = ...
}

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

Retrieves the usual MIME type for a given file name

Retrieves the usual MIME type for a given file name

Value parameters

name

the file name, e.g. hello.txt

Attributes

Returns

the MIME type, if defined

Concrete methods

def asJava: FileMimeTypes

Attributes

Returns

the Java version for this file mime types.