74 lines
3.0 KiB
PHP
74 lines
3.0 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Files extends CI_Controller
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->load->model('FileModel', '', TRUE);
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
|
|
|
|
if(isset($_FILES['fileUpload'])) {
|
|
$fileName = $_FILES['fileUpload']['name'];
|
|
$tmpName = $_FILES['fileUpload']['tmp_name'];
|
|
$fileSize = $_FILES['fileUpload']['size'];
|
|
$fileType = $_FILES['fileUpload']['type'];
|
|
|
|
$this->FileModel->uploadFile($fileName, $tmpName, $fileSize, $fileType);
|
|
|
|
unset($_FILES['fileUpload']);
|
|
|
|
redirect(base_url('admin/files'));
|
|
}
|
|
|
|
|
|
$files = $this->FileModel->getFileList();
|
|
|
|
$this->load->view('admin/sidebar', ['title' => 'Alle Dateien', 'additionalStyles' => ['lib/jquery.fileupload.css', 'lib/jquery.fileupload-ui.css']]);
|
|
$this->load->view('admin/files', ['files' => $files]);
|
|
$this->load->view('admin/footer', ['additionalScripts' => ['lib/jquery.ui.widget.js', 'lib/jquery.iframe-transport.js', 'lib/jquery.fileupload.js', 'lib/jquery.fileupload-process.js', 'lib/jquery.fileupload-image.js', 'lib/jquery.fileupload-audio.js', 'lib/jquery.fileupload-video.js', 'lib/jquery.fileupload-validate.js', 'lib/jquery.fileupload-ui.js']]);
|
|
}
|
|
|
|
public function delete() {
|
|
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
|
|
$id = filter_input(INPUT_POST, "id");
|
|
$this->FileModel->delete($id);
|
|
}
|
|
|
|
public function uploadImage()
|
|
{
|
|
header("Content-Type: application/json");
|
|
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
|
|
echo json_encode([
|
|
'success' => false,
|
|
'message' => '<b>Fehler beim Upload!</b> Aufgrund von zu geringen Zugriffsrechten konnte das Bild leider nicht hochgeladen werden. Sollte es sich dabei um ein Irrtum handeln, kontaktiere bitte einen Admin über das Kontaktformular.'
|
|
]);
|
|
exit;
|
|
}
|
|
|
|
if(!isset($_POST['image']) || !isset($_POST['name']) || !isset($_POST['type']) || !isset($_POST['size'])) {
|
|
echo json_encode([
|
|
'success' => false,
|
|
'message' => '<b>Fehler beim Upload!</b> Das hochgeladene Bild enthält fehlerhafte Informationen.'
|
|
]);
|
|
exit;
|
|
}
|
|
$image = str_replace(' ', '+', $_POST['image']);
|
|
$image = substr($image, strpos($image, ',') + 1);
|
|
$image = base64_decode($image);
|
|
|
|
$fileUrl = $this->FileModel->uploadFileByContent($image, $_POST['name'], $_POST['type'], $_POST['size']);
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'message' => '<b>Bild erfolgreich hochgeladen!</b>',
|
|
'url' => $fileUrl
|
|
]);
|
|
}
|
|
} |