fhiiqm/inc/file_upload.inc.php
changeset 43 70cea8f0e807
parent 35 679bc22e37e2
--- a/fhiiqm/inc/file_upload.inc.php	Fri Jan 17 08:50:55 2014 +0100
+++ b/fhiiqm/inc/file_upload.inc.php	Wed Aug 06 09:42:40 2014 +0200
@@ -1,239 +1,239 @@
-<?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"] > 32000000) $errupl1 .= "$ufile: File > 32MByte! ";
-//		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>Upload bitte wiederholen</p>\n";
-			return false;
-		}	
-}
-
-function upload_multif($ufile, $fname, $id, $dir="documents")
-{
-   /**
-    * prueft Uploadfile und verschiebt es in gewaehltes Verzeichnis
-    *  Parameter
-    *   $ufile = upload-File-Array: name <input>-Felder 
-    * 	$fname = gewaehltes filenamen-Array
-    *   $id    = ID
-    *   $dir   = Verzeichnisname der Upload-Files
-    */
-
-        $errupl1 = null;
-        $errupl2 = null;
-        $errupl3 = null;
-        $ret = true;
-		// Test filesize, filetyp	
-        foreach ($_FILES[$ufile]['error'] as $key => $error) 
-        {
-            if ($error == UPLOAD_ERR_OK)
-            {
-                if ($_FILES[$ufile]['size'][$key] < 1) $errupl1 .= $_FILES[$ufile]['name'][$key].": File ist leer! ";
-        		if ($_FILES[$ufile]['size'][$key] > 32000000) $errupl1 .= $_FILES[$ufile]['name'][$key].": File > 32MByte! ";
-        //		list($first,$rest) = explode(".",$_FILES[$ufile]["name"]);
-        		$filep = explode(".",$_FILES[$ufile]['name'][$key]);
-        		$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 (!$errupl1 && !$errupl2)
-        		{
-        			// File laden
-        			$filename = basename(addslashes($_FILES[$ufile]['name'][$key]));				
-        			$tempname = $_FILES[$ufile]['tmp_name'][$key];
-//echo "key = $key, fname = ".$fname[$key].", filename = $filename, uploadname = " . $_FILES[$ufile]['name'][$key] ."<br />";
-        			if ($fname[$key])
-                    {
-                          $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$fname[$key]);
-                    }
-                    else    
-                        $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$filename);
-        
-        			if ($ret)
-        			{		
-                        if ($fname[$key]) $fnam=$id."_".$fname[$key]; else $fnam = $id."_".$filename;
-           				echo "<p class=\"green\">Upload von '$filename' erfolgreich.<br>
-                            gespeicherter Dateiname: '". $fnam ."'</p>\n";
-        				$ret = $ret && true;
-        			}
-        			else
-        			{
-        				echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"][$key]."' fehlgeschlagen.</p>\n";
-        				$ret = $ret && false;
-        			}	
-        		}
-        		else
-        		{
-                    $errupl3 = "Fehler upload: ".$_FILES[$ufile]["error"][$key];
-        			echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"][$key]."' nicht m&ouml;glich!<br>$errupl1<br>$errupl2<br>$errupl3</p>\n";			
-        			echo "<p>Upload bitte wiederholen</p>\n";
-        			$ret = $ret && false;
-        		}
-            }
-        $errupl1 = null;
-        $errupl2 = null;
-        $errupl3 = null;
-        }
-        return $ret;	
-}
-
-function gen_filename($nfile, $ufile, $id, $upload=1)
-{
-   /** generiert Filenamen aus Eingabefilenamen und Uploadfilenamen
-    *  wenn upload<>1, dann aus neuem Dateinamen+alten (wenn nicht angegeben:Typ)
-    * Parameter
-    *    $nfile  -   vorgegebener Name durch Nutzer
-    *    $ufile  -   Name aus Upload-Feld Formular, bzw. alter Filename
-    *    $id     -   ID
-    */
-
-    if ($nfile > '!')
-    {
-        $su = array("ä","ö","ü","ß","Ä","Ö","Ü");
-        $er = array("ae","oe","ue","ss","Ae","Oe","Ue");
-    
-        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
-        {
-            if ($upload)
-                $filep = explode(".",$_FILES[$ufile]['name']);
-            else
-                $filep = explode(".",$ufile);
-            $anz    = count($filep);
-            if ($anz>1) $typ = $filep[$anz-1]; else $typ = "pdf";
-            $fname = $nfile;
-        }
-        // ev. vorhandene gaengige Umlaute ersetzen
-        $fname = str_replace($su,$er,$fname);
-        
-        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);
-     }
-     else $fname = "";       
-     return $fname;
-}
-
-function mod_file($path,$id,$fname_new,$mod,$fname_old="")
-{
-   /** 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
-    *    $fname_old  -   alter Filename
-    */
-    
-    if ($fname_old == "") $fname_old = exec("ls ".$path." | grep '". $id . "_'");
-    if ($fname_old)
-    {
-        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);           
-            }
-        }
-        else return true;
-    }
-    else return false;    
-}
-// Test Aufruf
-/*
-    if (mod_file("/var/www/fhiiqm/documents","20","","del"))
-        echo "Erfolg!\n";
-    else
-        echo "Misserfolg\n";
-*/
-
+<?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"] > 32000000) $errupl1 .= "$ufile: File > 32MByte! ";
+//		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>Upload bitte wiederholen</p>\n";
+			return false;
+		}	
+}
+
+function upload_multif($ufile, $fname, $id, $dir="documents")
+{
+   /**
+    * prueft Uploadfile und verschiebt es in gewaehltes Verzeichnis
+    *  Parameter
+    *   $ufile = upload-File-Array: name <input>-Felder 
+    * 	$fname = gewaehltes filenamen-Array
+    *   $id    = ID
+    *   $dir   = Verzeichnisname der Upload-Files
+    */
+
+        $errupl1 = null;
+        $errupl2 = null;
+        $errupl3 = null;
+        $ret = true;
+		// Test filesize, filetyp	
+        foreach ($_FILES[$ufile]['error'] as $key => $error) 
+        {
+            if ($error == UPLOAD_ERR_OK)
+            {
+                if ($_FILES[$ufile]['size'][$key] < 1) $errupl1 .= $_FILES[$ufile]['name'][$key].": File ist leer! ";
+        		if ($_FILES[$ufile]['size'][$key] > 32000000) $errupl1 .= $_FILES[$ufile]['name'][$key].": File > 32MByte! ";
+        //		list($first,$rest) = explode(".",$_FILES[$ufile]["name"]);
+        		$filep = explode(".",$_FILES[$ufile]['name'][$key]);
+        		$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 (!$errupl1 && !$errupl2)
+        		{
+        			// File laden
+        			$filename = basename(addslashes($_FILES[$ufile]['name'][$key]));				
+        			$tempname = $_FILES[$ufile]['tmp_name'][$key];
+//echo "key = $key, fname = ".$fname[$key].", filename = $filename, uploadname = " . $_FILES[$ufile]['name'][$key] ."<br />";
+        			if ($fname[$key])
+                    {
+                          $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$fname[$key]);
+                    }
+                    else    
+                        $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$filename);
+        
+        			if ($ret)
+        			{		
+                        if ($fname[$key]) $fnam=$id."_".$fname[$key]; else $fnam = $id."_".$filename;
+           				echo "<p class=\"green\">Upload von '$filename' erfolgreich.<br>
+                            gespeicherter Dateiname: '". $fnam ."'</p>\n";
+        				$ret = $ret && true;
+        			}
+        			else
+        			{
+        				echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"][$key]."' fehlgeschlagen.</p>\n";
+        				$ret = $ret && false;
+        			}	
+        		}
+        		else
+        		{
+                    $errupl3 = "Fehler upload: ".$_FILES[$ufile]["error"][$key];
+        			echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"][$key]."' nicht m&ouml;glich!<br>$errupl1<br>$errupl2<br>$errupl3</p>\n";			
+        			echo "<p>Upload bitte wiederholen</p>\n";
+        			$ret = $ret && false;
+        		}
+            }
+        $errupl1 = null;
+        $errupl2 = null;
+        $errupl3 = null;
+        }
+        return $ret;	
+}
+
+function gen_filename($nfile, $ufile, $id, $upload=1)
+{
+   /** generiert Filenamen aus Eingabefilenamen und Uploadfilenamen
+    *  wenn upload<>1, dann aus neuem Dateinamen+alten (wenn nicht angegeben:Typ)
+    * Parameter
+    *    $nfile  -   vorgegebener Name durch Nutzer
+    *    $ufile  -   Name aus Upload-Feld Formular, bzw. alter Filename
+    *    $id     -   ID
+    */
+
+    if ($nfile > '!')
+    {
+        $su = array("ä","ö","ü","ß","Ä","Ö","Ü");
+        $er = array("ae","oe","ue","ss","Ae","Oe","Ue");
+    
+        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
+        {
+            if ($upload)
+                $filep = explode(".",$_FILES[$ufile]['name']);
+            else
+                $filep = explode(".",$ufile);
+            $anz    = count($filep);
+            if ($anz>1) $typ = $filep[$anz-1]; else $typ = "pdf";
+            $fname = $nfile;
+        }
+        // ev. vorhandene gaengige Umlaute ersetzen
+        $fname = str_replace($su,$er,$fname);
+        
+        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);
+     }
+     else $fname = "";       
+     return $fname;
+}
+
+function mod_file($path,$id,$fname_new,$mod,$fname_old="")
+{
+   /** 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
+    *    $fname_old  -   alter Filename
+    */
+    
+    if ($fname_old == "") $fname_old = exec("ls ".$path." | grep '". $id . "_'");
+    if ($fname_old)
+    {
+        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);           
+            }
+        }
+        else return true;
+    }
+    else return true;    
+}
+// Test Aufruf
+/*
+    if (mod_file("/var/www/fhiiqm/documents","20","","del"))
+        echo "Erfolg!\n";
+    else
+        echo "Misserfolg\n";
+*/
+
 ?>
\ No newline at end of file