/** * Get the first image of a video * @param Array $params = ( * path => string Path of the file * ) * @return fill the response with the image */ public static function getVideoPoster($params) { if ($params === null || !is_array($params)) { throw new EyeInvalidArgumentException('Missing or invalid $params'); } if (!isset($params['path']) || !is_string($params['path'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'path\']'); } $myFile = FSI::getFile($params['path']); if (method_exists($myFile, 'getRealFile')) { $fileName = AdvancedPathLib::getPhpLocalHackPath($myFile->getRealFile()->getAbsolutePath()); } else { $fileName = $params['path']; } Logger::getLogger('Mobile - files.php')->debug('$fileName: ' . $fileName); try { $MediaConverter = new MediaConverter(); $fileName = $MediaConverter->Convert($fileName, 'JPG'); } catch (Exception $e) { Logger::getLogger('Mobile - files.php')->debug('$MediaConverter error: ' . $e); } $size = filesize($fileName); $data = file_get_contents($fileName); $response = MMapManager::getCurrentResponse(); $response->getHeaders()->append('Content-Type: image/jpeg'); $response->getHeaders()->append('Content-Length: ' . $size); $response->getHeaders()->append('Accept-Ranges: bytes'); // $response->getHeaders()->append('Expires: 0'); // $response->getHeaders()->append('Pragma: public'); // $response->getHeaders()->append('Content-Disposition: inline'); // $response->getHeaders()->append('Content-Transfer-Encoding: binary'); // $response->getHeaders()->append('Cache-Control: must-revalidate, post-check=0, pre-check=0'); // $response->getHeaders()->append('X-Pad: avoid browser bug'); $response->setBody($data); }
public static function getFile($params) { $instance = MemoryManager::getInstance(); $request = MMapManager::getCurrentRequest(); $response = MMapManager::getCurrentResponse(); $plist = $instance->get('playList'); $myFile = FSI::getFile($plist[$params]); $myFile->checkReadPermission(); $myExt = strtolower($myFile->getExtension()); $type = $request->issetGET('type') ? $request->getGET('type') : ''; $myRealFile = $myFile->getRealFile(); $fileNameDestination = AdvancedPathLib::getPhpLocalHackPath($myRealFile->getPath()); //Convert file to a supported FLV if ($type == 'convert2FLV' || $myExt == 'mov' || $myExt == '3gp' || $myExt == 'wav' || $myExt == 'wma' || $myExt == '3gpp' || $myExt == '3g2' || $myExt == 'mp4' || $myExt == 'mpg' || $myExt == 'mpv' || $myExt == 'avi' || $myExt == 'ogg' || $myExt == 'ogv' || $myExt == 'webm') { Logger::getLogger('VIEWEEER')->debug('$fileNameDestination before transcode: ' . $myExt); $mediaConverter = new MediaConverter(); $fileNameDestination = $mediaConverter->Convert($fileNameDestination, 'FLV'); $type = 'flv'; Logger::getLogger('VIEWEEER')->debug('$fileNameDestination after transcode: ' . $fileNameDestination); } // setting headers if ($type == 'image' || $myExt == 'png' || $myExt == 'jpg' || $myExt == 'gif') { header('Content-Type: image/' . $myExt); } else { if ($type == 'mp4' || $myExt == 'mp4') { header('Content-type: video/mp4'); } else { if ($type == 'flv' || $myExt == 'flv') { header('Content-type: video/x-flv'); } else { if ($type == 'mp3' || $myExt == 'mp3') { header('Content-type: audio/mpeg3'); } else { if ($type == 'm4a' || $myExt == 'm4a') { header('Content-type: audio/mp4a-latm'); } else { if (method_exists($myFile, 'getMimeType')) { header('Content-type: ' . $myFile->getMimeType()); } } } } } } $len = filesize($fileNameDestination); header('Content-Length: ' . $len); header('Accept-Ranges: bytes'); header('X-Pad: avoid browser bug'); session_write_close(); readFile($fileNameDestination); exit; }