ILIAS  release_7 Revision v7.30-3-g800a261c036
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 } elseif ($obj_id = $preview->getObjId()) {
48 $file_data = ilObjFileAccess::_lookupFileData($obj_id);
49 $filename = $file_data['file_name'] ?? '';
50 }
51
53
54 // contains that extension?
55 return in_array($ext, $this->getSupportedFileFormats());
56 }
57
66 public function prepareFileForExec($filepath)
67 {
68 $filepath = ilFileUtils::getValidFilename($filepath);
69
70 $pos = strrpos($filepath, "/");
71 $name = $pos !== false ? substr($filepath, $pos + 1) : $filepath;
72
73 // if the file path contains any characters that could cause problems
74 // we copy the file to a temporary file
75 // $normName = preg_replace("/[^A-Za-z0-9.\- +_&]/", "", $name);
76 // if ($normName != $name)
77 // {
78 // $tempPath = ilUtil::ilTempnam();
79 // if (copy($filepath, $tempPath))
80 // return $tempPath;
81 // }
82 //
83 return $filepath;
84 }
85
91 abstract public function getSupportedFileFormats();
92}
$filename
Definition: buildRTE.php:89
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 getValidFilename($a_filename)
Get valid filename.
static _getFileExtension($a_file_name)
Gets the file extension of the specified file name.
static _lookupFileData($a_id)
looks up the file_data for the file object with the specified object id as an associative array.
Abstract parent class for all preview renderer classes.
$preview
Definition: imgupload.php:55
if($format !==null) $name
Definition: metadata.php:230