ACC SHELL

Path : /srv/www/vhosts/centrumlb/administrace/include/dokumenty/
File Upload :
Current File : //srv/www/vhosts/centrumlb/administrace/include/dokumenty/soubory_ulozit.php

<?php

include_once('../../config/config.php');
//include_once('../../libs/images.class.php');
include_once('../../libs/funkcephp.php');
//phpinfo();
//echo "<pre>";print_r($_POST);echo "</pre>";

if ($_POST['uploader_count'] == '0') {
    Tools::message('Není co zpracovat, nahrajte dokumenty na server.', 'INFO');
    Tools::redirect($_SERVER['HTTP_REFERER']);
}

for ($i = 0; $i < $_POST['uploader_count']; $i++) {

    $pripona = explode(".", $_POST['uploader_' . $i . '_name']);
    $nazev_original = $pripona[0];
    $nazev_souboru = NStrings::webalize($pripona[0]);
    $pripona = strtolower($pripona[count($pripona) - 1]);

    $obrazky = array("jpg", "png", "gif");
    //$obrazky = '';
    $soubory = array("doc", "xls", "pdf", "zip", "mp3");

    $tmp = ROOT . "/tmp/";
    $velikost = filesize($tmp . $_POST['uploader_' . $i . '_tmpname']);
    $Uploaded_file = (TMP . $_POST['uploader_' . $i . '_tmpname']);
    $popis = isset($_POST['popis']) ? $_POST['popis'] : '';

    switch ($pripona) {

	case in_array($pripona, $soubory):
	    $query = "INSERT INTO dokumenty (nazev, pripona, velikost, datum)
                        VALUES('" . $nazev_original . "', '" . $pripona . "','" . $velikost . "', now())";
	    //echo $query;
	    $result = dibi::query($query);

	    if (!$result) {
		Tools::message('Problém s uložením do databaze. Soubory nebyly uloženy.', 'ERR');
		Tools::redirect($_SERVER['HTTP_REFERER']);
	    } else {
		$cislo_souboru = dibi::insertId();

		$query = "UPDATE dokumenty set seo_nazev = '" . $cislo_souboru . "_" . $nazev_souboru . "', priorita = '" . $cislo_souboru . "' WHERE id = '$cislo_souboru'";
		dibi::query($query);

		if ($_POST['kategorie'] != 'default' && isset($_POST['kategorie'])) {
		    $query = "INSERT INTO dokumenty_prirazeni (id_dokumentu, id_kategorie) VALUES('$cislo_souboru', '" . intval($_POST['kategorie']) . "')";
		    dibi::query($query);
		}
		$what = $tmp . $_POST['uploader_' . $i . '_tmpname'];

		$where = ROOT . DOKUMENTY_PATH . $cislo_souboru . "_" . $nazev_souboru . "." . $pripona;
		
		//NDebugger::dump($what);NDebugger::dump($where);exit;
		//$result = move_uploaded_file($what, $where);
		$result = copy($what, $where);
		if (!$result) {
		    dibi::query('DELETE FROM dokumenty WHERE id = %i', $cislo_souboru);
		    Tools::message('Problém s uložením na server. Soubory nebyly uloženy.', 'ERR');
		    Tools::message('What - ' . $what, 'ERR');
		    Tools::message('Where - ' . $where, 'ERR');
		    Tools::redirect($_SERVER['HTTP_REFERER']);
		} else {
		    Tools::message('Soubory byly úspěšně uloženy.', 'OK');
		}
	    }
	    break;
	case in_array($pripona, $obrazky):
	    $query = "INSERT INTO dokumenty (nazev, pripona, velikost, datum, obrazek)
                        VALUES('" . $nazev_original . "', '" . $pripona . "','" . $velikost . "', now(), 1)";
	    //echo $query;
	    $result = dibi::query($query);

	    if (!$result) {
		Tools::message('Problém s uložením do databaze. Soubory nebyly uloženy.', 'ERR');
		Tools::redirect($_SERVER['HTTP_REFERER']);
	    } else {
		$cislo_souboru = dibi::insertId();

		$query = "UPDATE dokumenty set seo_nazev = '" . $cislo_souboru . "_" . $nazev_souboru . "', priorita = '" . $cislo_souboru . "', popis = '" . $popis . "' WHERE id = '$cislo_souboru'";
		dibi::query($query);

		if ($_POST['kategorie'] != 'default' && isset($_POST['kategorie'])) {
		    $query = "INSERT INTO dokumenty_prirazeni (id_dokumentu, id_kategorie) VALUES('$cislo_souboru', '" . intval($_POST['kategorie']) . "')";
		    dibi::query($query);
		}
		$what = $tmp . $_POST['uploader_' . $i . '_tmpname'];


		/** Zpracovani fotky pro ADMIN vypis* */
		if (Tools::isDir(DOCS_F_L_PATH, true)) {
		    $image_admin = NImage::fromFile($Uploaded_file);
		    $image_admin->resizeMedium(ADMIN_VYPIS_WIDTH, ADMIN_VYPIS_HEIGHT, NImage::SHRINK_ONLY);
		    $target_path = ROOT . DOCS_ADMIN_PATH . $cislo_souboru . "." . $pripona;
		    $image_admin->save($target_path, 100);
		}
		/** Konec zpracovani fotky pro ADMIN vypis* */
		/** Zpracovani LARGE fotky * */
		if (Tools::isDir(DOCS_F_L_PATH, true)) {
		    $image_large = NImage::fromFile($Uploaded_file);
		    if ($image_large->getWidth() > $image_large->getHeight()) {
			$image_large->resize(FOTO_F_L_WIDTH, NULL, NImage::SHRINK_ONLY);
		    } else {
			$image_large->resize(NULL, FOTO_F_L_HEIGHT, NImage::SHRINK_ONLY);
		    }
		    $target_path = ROOT . DOCS_F_L_PATH . $cislo_souboru . "." . $pripona;
		    $image_large->save($target_path, 100);
		    /** Konec zpracovani LARGE fotky * */
		    Tools::message('Soubory byly úspěšně uloženy.', 'OK');
		}
	    }
	    break;
	default :
	    Tools::message('Nepovolená koncovka souboru.', 'ERR');
	    break;
    }
}

if (isset($_POST['odeslat'])) {
    Tools::redirect('/administrace/dokumenty_upload.php');
}
if (isset($_POST['odeslat_a_zavrit'])) {
    Tools::redirect('/administrace/dokumenty.php');
}
?>

ACC SHELL 2018