fhiiqm/inc/file_upload.inc.php
changeset 1 6288d5685bff
child 8 908abe8cec4d
--- /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&ouml;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