|
1 <?php |
|
2 |
|
3 /** |
|
4 * @author B.Schwarzer, Fritz-Haber-Institut |
|
5 * @copyright 05/2011 |
|
6 */ |
|
7 |
|
8 function upload($ufile, $fname, $id, $dir="documents") |
|
9 { |
|
10 /** |
|
11 * prueft Uploadfile und verschiebt es in gewaehltes Verzeichnis |
|
12 * Parameter |
|
13 * $ufile = upload-File: name <input>-Feld |
|
14 * $fname = gewaehlter filename |
|
15 * $id = ID |
|
16 * $dir = Verzeichnisname der Upload-Files |
|
17 */ |
|
18 |
|
19 $errupl1 = null; |
|
20 $errupl2 = null; |
|
21 $errupl3 = null; |
|
22 // Test filesize, filetyp |
|
23 if ($_FILES[$ufile]["size"] < 1) $errupl1 .= "$ufile: File ist leer! "; |
|
24 if ($_FILES[$ufile]["size"] > 6000000) $errupl1 .= "$ufile: File > 6MByte! "; |
|
25 // list($first,$rest) = explode(".",$_FILES[$ufile]["name"]); |
|
26 $filep = explode(".",$_FILES[$ufile]["name"]); |
|
27 $anz = count($filep); |
|
28 $typ = $filep[$anz-1]; |
|
29 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! "; |
|
30 //echo "filesize=" . $_FILES[$ufile]["size"] . "<br>\n"; |
|
31 if ($_FILES[$ufile]["error"] > 0) $errupl3 = "Fehler upload: ".$_FILES[$ufile]["error"]; |
|
32 if (!$errupl1 && ! $errupl2 && !$errupl3) |
|
33 { |
|
34 // File laden |
|
35 $filetyp = $_FILES[$ufile]['type']; |
|
36 $filesize = $_FILES[$ufile]['size']; |
|
37 $filename = basename(addslashes($_FILES[$ufile]["name"])); |
|
38 $tempname = $_FILES[$ufile]['tmp_name']; |
|
39 if ($fname) |
|
40 { |
|
41 $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$fname); |
|
42 } |
|
43 else |
|
44 $ret = move_uploaded_file ( $tempname, $dir."/".$id."_".$filename); |
|
45 |
|
46 if ($ret) |
|
47 { |
|
48 // echo "Error upload: ". $_FILES['pfile']['error'] .", $tempname<br>\n"; |
|
49 if ($fname) $fname=$id."_".$fname; else $fname = $id."_".$filename; |
|
50 echo "<p class=\"green\">Upload von '" . $_FILES[$ufile]["name"]."' erfolgreich.<br> |
|
51 gespeicherter Dateiname: '". $fname ."'</p>\n"; |
|
52 return true; |
|
53 } |
|
54 else |
|
55 { |
|
56 echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"]."' fehlgeschlagen.</p>\n"; |
|
57 return false; |
|
58 } |
|
59 } |
|
60 else |
|
61 { |
|
62 echo "<p class=\"red\">Upload von '" . $_FILES[$ufile]["name"]."' nicht möglich!<br>$errupl1<br>$errupl2<br>$errupl3</p>\n"; |
|
63 echo "<p><br><a href=\"sc_desc_update.php\">Upload bitte wiederholen</a><br></p>\n"; |
|
64 return false; |
|
65 } |
|
66 } |
|
67 |
|
68 function gen_filename($nfile, $ufile, $id) |
|
69 { |
|
70 /** generiert Filenamen aus Eingabefilenamen und Uploadfilenamen |
|
71 * Parameter |
|
72 * $nfile - vorgegebener Name durch Nutzer |
|
73 * $ufile - Name aus Upload-Feld Formular |
|
74 * $id - ID |
|
75 */ |
|
76 switch ($id) |
|
77 { |
|
78 case ($id < 10): |
|
79 $len = 2; |
|
80 break; |
|
81 case ($id < 100): |
|
82 $len = 3; |
|
83 break; |
|
84 case ($id < 1000): |
|
85 $len = 4; |
|
86 break; |
|
87 } |
|
88 // echo "cid, len : $cid, $len<br><br>\n"; |
|
89 // Dokument-Typ aus Dateibezeichnung bzw. Uploadfile, wenn nicht angegeben |
|
90 $filea = explode(".",$nfile); |
|
91 $anz = count($filea); |
|
92 if ($anz>1) // File-Typ im Eingabenamen angegeben |
|
93 { |
|
94 $typ = $filea[$anz-1]; |
|
95 for ($i=0; $i<$anz-1; $i++) |
|
96 { |
|
97 $fname .= "." . $filea[$i]; |
|
98 } |
|
99 } |
|
100 else // File-Typ aus Uploadfile |
|
101 { |
|
102 $filep = explode(".",$_FILES[$ufile]["name"]); |
|
103 $anz = count($filep); |
|
104 if ($anz>1) $typ = $filep[$anz-1]; else $typ = "pdf"; |
|
105 $fname = $nfile; |
|
106 } |
|
107 if (strlen($typ) != 3) $typ="pdf"; |
|
108 if (substr($fname,0,1) == ".") |
|
109 $fname = substr($fname,1,50-(4+$len)) . "." .$typ; |
|
110 else |
|
111 $fname = substr($fname,0,50-(4+$len)) . "." .$typ; |
|
112 if (substr($fname,0,$len) == "$id" . "_") $fname = substr($fname,$len,50); |
|
113 |
|
114 return $fname; |
|
115 } |
|
116 |
|
117 function mod_file($path,$id,$fname_new,$mod) |
|
118 { |
|
119 /** Loeschen, Aendern des Namens von Vetragsdokumenten |
|
120 * Parameter |
|
121 * $path - Pfad zur Datei |
|
122 * $id - ID des zu bearbeiteten Files, beginnt mit 'ID_' |
|
123 * $fname_new - neuer Filename |
|
124 * $mod - del = Loeschen |
|
125 * upd = Umbenennen |
|
126 */ |
|
127 |
|
128 if ($fname_old = exec("ls ".$path." | grep '". $id . "_'")) |
|
129 { |
|
130 if (file_exists($path."/".$fname_old)) |
|
131 { |
|
132 chmod($path."/".$fname_old,0644); |
|
133 if ($mod == "del") |
|
134 { |
|
135 return unlink($path."/".$fname_old); |
|
136 } |
|
137 elseif ($mod == "upd" && $fname_new>"!") |
|
138 { |
|
139 return rename($path."/".$fname_old, $path."/".$fname_new); |
|
140 } |
|
141 } |
|
142 } |
|
143 } |
|
144 // Test Aufruf |
|
145 /* |
|
146 if (mod_file("/var/www/fhiiqm/documents","20","","del")) |
|
147 echo "Erfolg!\n"; |
|
148 else |
|
149 echo "Misserfolg\n"; |
|
150 */ |
|
151 |
|
152 ?> |