fhiiqm/inc/info_file.inc.php
author Bettina Schwarzer
Fri, 05 Feb 2016 14:03:40 +0100
changeset 44 d652bbba2d43
parent 37 d0b1e73eda83
permissions -rw-r--r--
fhiiqm: achilleus -> db2, Korrekturen
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     1
<?php
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     2
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     3
/**
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     4
 * @author Bettina Schwarzer, Fritz-Haber-Institut
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     5
 * @copyright 04/2013
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     6
 * 
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     7
 * Upload Info-Files
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     8
 */
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     9
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    10
            include_once ("inc/file_upload.inc.php");
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    11
            $retf = 1; $ret = 1;
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    12
            $len = strlen($infid)+1;
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    13
            // alte Namen Infodocumente
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    14
            $sql = "SELECT if_filename FROM Info_File WHERE info_ID = $infid ORDER BY if_ID";
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    15
            if ($res = $dbc -> queryObjectArray($sql))
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    16
                foreach ($res as $row)
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    17
                    $ifile_old[] = $row->if_filename;
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    18
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    19
            // zu loeschende docs auf Server
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    20
            foreach ($inf['ifname'] as $key => &$val)
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    21
            {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    22
                if (isset($inf['del'][$key]) && $inf['del'][$key] && $val)
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    23
                {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    24
                    $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$val);  // Loeschen altes File auf Server
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    25
                    $val = null;
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    26
                }   
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    27
            }            
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    28
            // upload File, wenn vorhanden
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    29
            if (isset($_FILES) && is_array($_FILES))
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    30
            {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    31
                foreach ($inf['ifname'] as $key => &$filena)
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    32
                {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    33
                    $filena = gen_filename($filena,$_FILES['ifile']['name'][$key],$infid,0);
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    34
                    if ($_FILES["ifile"]["error"][$key] == UPLOAD_ERR_NO_FILE)
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    35
                    {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    36
                        if ($filena > "!" && $infid."_".$filena != $ifile_old[$key])
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    37
                        {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    38
                            if (substr($filena,0,$len) != "$infid_") $filenam = $infid . "_" . $filena; else $filenam = $filena;
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    39
                            $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,$filenam,"upd",$ifile_old[$key]);  // Umbenennen alte Datei
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    40
                        }   
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    41
                        elseif ((!$filena || $filena == '') && isset($ifile_old[$key]))
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    42
                            $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]);  // Loeschen alte Datei
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    43
                        else    //kein Upload, keine Dateinamenaenderung
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    44
                            $retf = 1;
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    45
                    }
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    46
                    if ($_FILES["ifile"]["error"][$key] == UPLOAD_ERR_OK)
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    47
                    {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    48
                        if (isset($ifile_old[$key]) && $filena > "!" && $infid."_".$filena != $ifile_old[$key])
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    49
                        {
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    50
                            $retf  = $retf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]);  // Loeschen alte Datei
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    51
                        }    
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    52
                    }
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    53
                }
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    54
                if (isset($_FILES['ifile']['error']) && is_array($_FILES['ifile']['error']) && in_array(0,$_FILES['ifile']['error']))
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    55
                {    
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    56
                    $ret = upload_multif("ifile", $inf['ifname'], $infid, $dir="infos");
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    57
                    if ($ret) echo "<p class='green'><b>Dateien zu ID '$infid' wurden erfolgreich hochgeladen.</b></p>\n";
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    58
                    else echo "<p class='red'><b>Upload für einige Dateien zu ID '$infid' ist fehlgeschlagen.</b></p>\n";
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    59
                }
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    60
                else $ret = 1;
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    61
            }
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    62
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    63
d0b1e73eda83 + Includes Info mehrere Dokumente
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    64
?>