fhiiqm/inc/file_upload.inc.php
changeset 35 679bc22e37e2
parent 31 0a1eb975fbd9
child 43 70cea8f0e807
--- a/fhiiqm/inc/file_upload.inc.php	Wed Feb 27 09:43:08 2013 +0100
+++ b/fhiiqm/inc/file_upload.inc.php	Tue Mar 26 15:41:01 2013 +0100
@@ -60,11 +60,80 @@
 		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";
+			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
@@ -75,6 +144,8 @@
     *    $id     -   ID
     */
 
+    if ($nfile > '!')
+    {
         $su = array("ä","ö","ü","ß","Ä","Ö","Ü");
         $er = array("ae","oe","ue","ss","Ae","Oe","Ue");
     
@@ -105,7 +176,7 @@
         else // File-Typ aus Uploadfile
         {
             if ($upload)
-                $filep = explode(".",$_FILES[$ufile]["name"]);
+                $filep = explode(".",$_FILES[$ufile]['name']);
             else
                 $filep = explode(".",$ufile);
             $anz    = count($filep);
@@ -121,11 +192,12 @@
         else
             $fname = substr($fname,0,50-(4+$len)) . "." .$typ;
         if (substr($fname,0,$len) == "$id" . "_") $fname = substr($fname,$len,50);
-            
-        return $fname;
+     }
+     else $fname = "";       
+     return $fname;
 }
 
-function mod_file($path,$id,$fname_new,$mod)
+function mod_file($path,$id,$fname_new,$mod,$fname_old="")
 {
    /** Loeschen, Aendern des Namens von Vetragsdokumenten
     * Parameter 
@@ -134,9 +206,11 @@
     *    $fname_new  -   neuer Filename
     *    $mod        -   del = Loeschen
     *                    upd = Umbenennen
+    *    $fname_old  -   alter Filename
     */
     
-    if ($fname_old = exec("ls ".$path." | grep '". $id . "_'"))
+    if ($fname_old == "") $fname_old = exec("ls ".$path." | grep '". $id . "_'");
+    if ($fname_old)
     {
         if (file_exists($path."/".$fname_old))
         {
@@ -150,7 +224,9 @@
                 return rename($path."/".$fname_old, $path."/".$fname_new);           
             }
         }
-    }    
+        else return true;
+    }
+    else return false;    
 }
 // Test Aufruf
 /*