<?php
/**
* @author Bettina Schwarzer, Fritz-Haber-Institut
* @copyright 04/2013
*
* Upload Info-Files
*/
include_once ("inc/file_upload.inc.php");
$retf = 1; $ret = 1;
$len = strlen($infid)+1;
// alte Namen Infodocumente
$sql = "SELECT if_filename FROM Info_File WHERE info_ID = $infid ORDER BY if_ID";
if ($res = $dbc -> queryObjectArray($sql))
foreach ($res as $row)
$ifile_old[] = $row->if_filename;
// zu loeschende docs auf Server
foreach ($inf['ifname'] as $key => &$val)
{
if (isset($inf['del'][$key]) && $inf['del'][$key] && $val)
{
$retf = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$val); // Loeschen altes File auf Server
$val = null;
}
}
// upload File, wenn vorhanden
if (isset($_FILES) && is_array($_FILES))
{
foreach ($inf['ifname'] as $key => &$filena)
{
$filena = gen_filename($filena,$_FILES['ifile']['name'][$key],$infid,0);
if ($_FILES["ifile"]["error"][$key] == UPLOAD_ERR_NO_FILE)
{
if ($filena > "!" && $infid."_".$filena != $ifile_old[$key])
{
if (substr($filena,0,$len) != "$infid_") $filenam = $infid . "_" . $filena; else $filenam = $filena;
$retf = $retf && mod_file("/var/www/fhiiqm/infos",$infid,$filenam,"upd",$ifile_old[$key]); // Umbenennen alte Datei
}
elseif ((!$filena || $filena == '') && isset($ifile_old[$key]))
$retf = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]); // Loeschen alte Datei
else //kein Upload, keine Dateinamenaenderung
$retf = 1;
}
if ($_FILES["ifile"]["error"][$key] == UPLOAD_ERR_OK)
{
if (isset($ifile_old[$key]) && $filena > "!" && $infid."_".$filena != $ifile_old[$key])
{
$retf = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]); // Loeschen alte Datei
}
}
}
if (isset($_FILES['ifile']['error']) && is_array($_FILES['ifile']['error']) && in_array(0,$_FILES['ifile']['error']))
{
$ret = upload_multif("ifile", $inf['ifname'], $infid, $dir="infos");
if ($ret) echo "<p class='green'><b>Dateien zu ID '$infid' wurden erfolgreich hochgeladen.</b></p>\n";
else echo "<p class='red'><b>Upload für einige Dateien zu ID '$infid' ist fehlgeschlagen.</b></p>\n";
}
else $ret = 1;
}
?>