ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilFilePreviewRenderer.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once("./Services/Preview/classes/class.ilPreviewRenderer.php");
5
15{
21 final public function getSupportedRepositoryTypes()
22 {
23 return array("file");
24 }
25
32 public function supports($preview)
33 {
34 // let parent check first
35 if (!parent::supports($preview)) {
36 return false;
37 }
38
39 // get file extension
40 require_once("./Modules/File/classes/class.ilObjFile.php");
41 include_once './Modules/File/classes/class.ilObjFileAccess.php';
42 // bugfix mantis 23293
43 if (isset($_FILES['file']['name'])) {
44 $filename = $_FILES['file']['name'];
45 } elseif (isset($_FILES['upload_files']['name'])) {
46 $filename = $_FILES['upload_files']['name'];
47 } else {
49 }
51
52 // contains that extension?
53 return in_array($ext, $this->getSupportedFileFormats());
54 }
55
64 public function prepareFileForExec($filepath)
65 {
66 $pos = strrpos($filepath, "/");
67 $name = $pos !== false ? substr($filepath, $pos + 1) : $filepath;
68
69 // if the file path contains any characters that could cause problems
70 // we copy the file to a temporary file
71 $normName = preg_replace("/[^A-Za-z0-9.\- +_&]/", "", $name);
72 if ($normName != $name) {
73 $tempPath = ilUtil::ilTempnam();
74 if (copy($filepath, $tempPath)) {
75 return $tempPath;
76 }
77 }
78
79 return $filepath;
80 }
81
87 abstract public function getSupportedFileFormats();
88}
An exception for terminatinating execution or to throw for unit testing.
Abstract parent class for all file preview renderer classes.
supports($preview)
Determines whether the specified preview object is supported by the renderer.
getSupportedRepositoryTypes()
Gets an array containing the repository types (e.g.
prepareFileForExec($filepath)
Checks whether the specified file path can be used with exec() commands.
getSupportedFileFormats()
Gets an array containing the file formats that are supported by the renderer.
static _getFileExtension($a_file_name)
Gets the file extension of the specified file name.
static _lookupFileName($a_id)
Abstract parent class for all preview renderer classes.
static ilTempnam($a_temp_path=null)
Create a temporary file in an ILIAS writable directory.
if($format !==null) $name
Definition: metadata.php:146
$preview