--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/inc/file_upload.inc.php Wed Aug 31 14:22:19 2011 +0200
@@ -0,0 +1,152 @@
+<?php
+
+/**
+ * @author B.Schwarzer, Fritz-Haber-Institut
+ * @copyright 05/2011
+ */
+
+function upload($ufile, $fname, $id, $dir="documents")
+{
+ /**
+ * prueft Uploadfile und verschiebt es in gewaehltes Verzeichnis
+ * Parameter
+ * $ufile = upload-File: name <input>-Feld
+ * $fname = gewaehlter filename
+ * $id = ID
+ * $dir = Verzeichnisname der Upload-Files
+ */
+
+ $errupl1 = null;
+ $errupl2 = null;
+ $errupl3 = null;
+ // Test filesize, filetyp
+ if ($_FILES[$ufile]["size"] < 1) $errupl1 .= "$ufile: File ist leer! ";
+ if ($_FILES[$ufile]["size"] > 6000000) $errupl1 .= "$ufile: File > 6MByte! ";
+// list($first,$rest) = explode(".",$_FILES[$ufile]["name"]);
+ $filep = explode(".",$_FILES[$ufile]["name"]);
+ $anz = count($filep);
+ $typ = $filep[$anz-1];
+ if (substr($typ,0,2)=="ph" || substr($typ,0,2)=="pl" || substr($typ,0,2)=="cg" || substr($typ,0,2)=="ex") $errupl2 .="$ufile: falscher Filetyp! ";
+//echo "filesize=" . $_FILES[$ufile]["size"] . "<br>\n";
+ if ($_FILES[$ufile]["error"] > 0) $errupl3 = "Fehler upload: ".$_FILES[$ufile]["error"];
+ if (!$errupl1 && ! $errupl2 && !$errupl3)
+ {
+ // File laden
+ $filetyp = $_FILES[$ufile]['type'];
+ $filesize = $_FILES[$ufile]['size'];
+ $filename = basename(addslashes($_FILES[$ufile]["name"]));
+ $tempname = $_FILES[$ufile]['tmp_name'];
+ if ($fname)
+ {
+ $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$fname);
+ }
+ else
+ $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$filename);
+
+ if ($ret)
+ {
+ // echo "Error upload: ". $_FILES['pfile']['error'] .", $tempname<br>\n";
+ if ($fname) $fname=$id."_".$fname; else $fname = $id."_".$filename;
+ echo "<p class=\"green\">Upload von '" . $_FILES[$ufile]["name"]."' erfolgreich.<br>
+ gespeicherter Dateiname: '". $fname ."'</p>\n";
+ return true;
+ }
+ else
+ {
+ echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"]."' fehlgeschlagen.</p>\n";
+ return false;
+ }
+ }
+ else
+ {
+ echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"]."' nicht möglich!<br>$errupl1<br>$errupl2<br>$errupl3</p>\n";
+ echo "<p><br><a href=\"sc_desc_update.php\">Upload bitte wiederholen</a><br></p>\n";
+ return false;
+ }
+}
+
+function gen_filename($nfile, $ufile, $id)
+{
+ /** generiert Filenamen aus Eingabefilenamen und Uploadfilenamen
+ * Parameter
+ * $nfile - vorgegebener Name durch Nutzer
+ * $ufile - Name aus Upload-Feld Formular
+ * $id - ID
+ */
+ switch ($id)
+ {
+ case ($id < 10):
+ $len = 2;
+ break;
+ case ($id < 100):
+ $len = 3;
+ break;
+ case ($id < 1000):
+ $len = 4;
+ break;
+ }
+// echo "cid, len : $cid, $len<br><br>\n";
+ // Dokument-Typ aus Dateibezeichnung bzw. Uploadfile, wenn nicht angegeben
+ $filea = explode(".",$nfile);
+ $anz = count($filea);
+ if ($anz>1) // File-Typ im Eingabenamen angegeben
+ {
+ $typ = $filea[$anz-1];
+ for ($i=0; $i<$anz-1; $i++)
+ {
+ $fname .= "." . $filea[$i];
+ }
+ }
+ else // File-Typ aus Uploadfile
+ {
+ $filep = explode(".",$_FILES[$ufile]["name"]);
+ $anz = count($filep);
+ if ($anz>1) $typ = $filep[$anz-1]; else $typ = "pdf";
+ $fname = $nfile;
+ }
+ if (strlen($typ) != 3) $typ="pdf";
+ if (substr($fname,0,1) == ".")
+ $fname = substr($fname,1,50-(4+$len)) . "." .$typ;
+ else
+ $fname = substr($fname,0,50-(4+$len)) . "." .$typ;
+ if (substr($fname,0,$len) == "$id" . "_") $fname = substr($fname,$len,50);
+
+ return $fname;
+}
+
+function mod_file($path,$id,$fname_new,$mod)
+{
+ /** Loeschen, Aendern des Namens von Vetragsdokumenten
+ * Parameter
+ * $path - Pfad zur Datei
+ * $id - ID des zu bearbeiteten Files, beginnt mit 'ID_'
+ * $fname_new - neuer Filename
+ * $mod - del = Loeschen
+ * upd = Umbenennen
+ */
+
+ if ($fname_old = exec("ls ".$path." | grep '". $id . "_'"))
+ {
+ if (file_exists($path."/".$fname_old))
+ {
+ chmod($path."/".$fname_old,0644);
+ if ($mod == "del")
+ {
+ return unlink($path."/".$fname_old);
+ }
+ elseif ($mod == "upd" && $fname_new>"!")
+ {
+ return rename($path."/".$fname_old, $path."/".$fname_new);
+ }
+ }
+ }
+}
+// Test Aufruf
+/*
+ if (mod_file("/var/www/fhiiqm/documents","20","","del"))
+ echo "Erfolg!\n";
+ else
+ echo "Misserfolg\n";
+*/
+
+?>
\ No newline at end of file