mime_content_type() static public method

See also: http://ca.php.net/manual/en/function.mime_content_type.php
static public mime_content_type ( $filename, $suggestedExtension = '' ) : string
$filename string Filename to test.
$suggestedExtension string Suggested file extension (used for common misconfigurations)
return string Detected MIME type
 /**
  * Adds a file attachment to the email.
  * @param $filePath string complete path to the file to attach
  * @param $fileName string attachment file name (optional)
  * @param $contentType string attachment content type (optional)
  * @param $contentDisposition string attachment content disposition, inline or attachment (optional, default attachment)
  */
 function addAttachment($filePath, $fileName = '', $contentType = '', $contentDisposition = 'attachment')
 {
     if (($attachments =& $this->getData('attachments')) == null) {
         $attachments = array();
     }
     /* If the arguments $fileName and $contentType are not specified,
     			then try and determine them automatically. */
     if (empty($fileName)) {
         $fileName = basename($filePath);
     }
     if (empty($contentType)) {
         $contentType = PKPString::mime_content_type($filePath);
         if (empty($contentType)) {
             $contentType = 'application/x-unknown-content-type';
         }
     }
     array_push($attachments, array('path' => $filePath, 'filename' => $fileName, 'content-type' => $contentType));
     $this->setData('attachments', $attachments);
 }
 /**
  * Upload the file and add it to the database.
  * @param $fileName string index into the $_FILES array
  * @param $userId int
  * @return object The new TemporaryFile or false on failure
  */
 function handleUpload($fileName, $userId)
 {
     // Get the file extension, then rename the file.
     $fileExtension = $this->parseFileExtension($this->getUploadedFileName($fileName));
     if (!$this->fileExists($this->getBasePath(), 'dir')) {
         // Try to create destination directory
         $this->mkdirtree($this->getBasePath());
     }
     $newFileName = basename(tempnam($this->getBasePath(), $fileExtension));
     if (!$newFileName) {
         return false;
     }
     if ($this->uploadFile($fileName, $this->getBasePath() . $newFileName)) {
         $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO');
         $temporaryFile = $temporaryFileDao->newDataObject();
         $temporaryFile->setUserId($userId);
         $temporaryFile->setServerFileName($newFileName);
         $temporaryFile->setFileType(PKPString::mime_content_type($this->getBasePath() . $newFileName));
         $temporaryFile->setFileSize($_FILES[$fileName]['size']);
         $temporaryFile->setOriginalFileName($this->truncateFileName($_FILES[$fileName]['name'], 127));
         $temporaryFile->setDateUploaded(Core::getCurrentDate());
         $temporaryFileDao->insertObject($temporaryFile);
         return $temporaryFile;
     } else {
         return false;
     }
 }
 /**
  * Download a file.
  * Outputs HTTP headers and file content for download
  * @param $filePath string the location of the file to be sent
  * @param $mediaType string the MIME type of the file, optional
  * @param $inline print file as inline instead of attachment, optional
  * @return boolean
  */
 function downloadFile($filePath, $mediaType = null, $inline = false, $fileName = null)
 {
     $result = null;
     if (HookRegistry::call('FileManager::downloadFile', array(&$filePath, &$mediaType, &$inline, &$result, &$fileName))) {
         return $result;
     }
     $postDownloadHookList = array('FileManager::downloadFileFinished', 'UsageEventPlugin::getUsageEvent');
     if (is_readable($filePath)) {
         if ($mediaType === null) {
             // If the media type wasn't specified, try to detect.
             $mediaType = PKPString::mime_content_type($filePath);
             if (empty($mediaType)) {
                 $mediaType = 'application/octet-stream';
             }
         }
         if ($fileName === null) {
             // If the filename wasn't specified, use the server-side.
             $fileName = basename($filePath);
         }
         // Free some memory
         $postDownloadHooks = null;
         $hooks = HookRegistry::getHooks();
         foreach ($postDownloadHookList as $hookName) {
             if (isset($hooks[$hookName])) {
                 $postDownloadHooks[$hookName] = $hooks[$hookName];
             }
         }
         unset($hooks);
         Registry::clear();
         // Stream the file to the end user.
         header("Content-Type: {$mediaType}");
         header('Content-Length: ' . filesize($filePath));
         header('Content-Disposition: ' . ($inline ? 'inline' : 'attachment') . "; filename=\"{$fileName}\"");
         header('Cache-Control: private');
         // Workarounds for IE weirdness
         header('Pragma: public');
         $this->readFileFromPath($filePath, true);
         if ($postDownloadHooks) {
             foreach ($postDownloadHooks as $hookName => $hooks) {
                 HookRegistry::setHooks($hookName, $hooks);
             }
         }
         $returner = true;
     } else {
         $returner = false;
     }
     HookRegistry::call('FileManager::downloadFileFinished', array(&$returner));
     return $returner;
 }