root/downloadDatabase/files/lib/data/downloadDB/DownloadDBData.class.php @ 541

Revision 541, 11.0 kB (checked in by Tatzelwurm, 5 years ago)

mime_types ergänzt

Line 
1<?php
2require_once(WCF_DIR.'lib/data/DatabaseObject.class.php');
3
4/**
5 * Represents an file upload.
6 *
7 * @author              Robert "Tatzelwurm" Hempel
8 * @copyright   2008 INSIDE das Hrspiel
9 * @license             GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
10 * @package             de.inside.wcf.DownloadDatabase
11 */
12class DownloadDBData extends DatabaseObject {
13       
14        /**
15         * Creates a new File object.
16         *
17         * @param       array           $row
18         * @param       integer         $dataID
19         */
20        public function __construct($dataID, $row = null) {
21                if ($dataID != null) {
22                        $sql = "SELECT  *
23                                FROM    wcf".WCF_N."_dldb_data
24                                WHERE   dataID = ".$dataID;
25                        $row = WCF::getDB()->getFirstRow($sql);
26                }
27                        parent::__construct($row);
28        }
29       
30        /**
31         * Returns the url to this file.
32         *
33         * @return      string
34         */
35        public function getURL() {
36                return DOWNLOADDB_FILE_DIR . intval($this->dataID) . '_' . StringUtil::encodeHTML($this->fileName);
37        }
38
39        /**
40         * Deletes this data in database, filesystem and clears cache
41         */
42        public function delete() {
43                // delete file
44                $this->deleteFile($this->fileName);
45
46                // delete Preview
47                $this->deletePreview($this->previewFile);
48
49                // delete database entry
50                $sql = "DELETE FROM     wcf".WCF_N."_dldb_data
51                                WHERE           dataID = ".$this->dataID;
52                WCF::getDB()->sendQuery($sql);
53
54                // clear Cache
55                $this->resetCache();
56        }
57       
58        /**
59         * Deletes this File.
60         * @param  string $fName
61         */
62        public function deleteFile($fName) {
63                // delete file
64                @unlink(WCF_DIR.DOWNLOADDB_FILE_DIR . $this->dataID . '_' . $fName);
65        }
66       
67        /**
68         * Deletes this PreviewFile.
69         * @param  string $fName
70         */
71        public function deletePreview($fName) {
72                // delete file
73                @unlink(WCF_DIR . DOWNLOADDB_PREVIEW_DIR . $this->dataID . '_' . $fName);
74                @unlink(WCF_DIR . DOWNLOADDB_PREVIEW_DIR . 'thumbnail-' . $this->dataID . '_' . $fName);
75        }
76       
77        public static function resetCache() {
78                // reset cache
79                WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbData.php');
80                WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbKat.php');
81        }
82
83        /**
84         * get icon for filetype
85         */
86        public static function setFileTypeIcon($mime_type) {
87                switch($mime_type) {
88                case (preg_match('/x-3dmf/i', $mime_type) == true):
89                $type = 'mime_3dm.png';
90                break;
91                case (preg_match('/x-authorware-bin/i', $mime_type) == true):
92                $type = 'mime_aab.png';
93                break;
94                case (preg_match('/x-authorware-map/i', $mime_type) == true):
95                $type = 'mime_aam.png';
96                break;
97                        case (preg_match('/x-authorware-seg/i', $mime_type) == true):
98                $type = 'mime_aas.png';
99                break;
100                        case (preg_match('/abc/i', $mime_type) == true):
101                $type = 'mime_abc.png';
102                break;
103                        case (preg_match('/animaflex/i', $mime_type) == true):
104                $type = 'mime_afl.png';
105                break;
106                        case (preg_match('/ace/i', $mime_type) == true):
107                $type = 'mime_ace.gif';
108                break;
109            case (preg_match('/aiff/i', $mime_type) == true):
110                $type = 'mime_aiff.png';
111                break;
112                        case (preg_match('/postscript/i', $mime_type) == true):
113                $type = 'mime_doc.gif';
114                break;
115            case (preg_match('/aim/i', $mime_type) == true):
116                $type = 'mime_aim.png';
117                break;
118            case (preg_match('/intra/i', $mime_type) == true):
119                $type = 'mime_aip.png';
120                break;
121            case (preg_match('/animation/i', $mime_type) == true):
122                $type = 'mime_ani.png';
123                break;
124            case (preg_match('/communicator/i', $mime_type) == true):
125                $type = 'mime_aos.png';
126                break;
127            case (preg_match('/arc/i', $mime_type) == true):
128                $type = 'mime_arc.gif';
129                break;
130                case (preg_match('/arj/i', $mime_type) == true):
131                $type = 'mime_arj.gif';
132                break;
133                case (preg_match('/x-jg/i', $mime_type) == true):
134                $type = 'mime_art.png';
135                break;
136                case (preg_match('/x-ms-asf/i', $mime_type) == true):
137                $type = 'mime_asf.png';
138                break;
139                case (preg_match('/x-ms-asf-plugin/i', $mime_type) == true || preg_match('/x-mplayer2/i', $mime_type) == true):
140                $type = 'mime_asx.png';
141                break;
142                case (preg_match('/x-asm/i', $mime_type) == true):
143                $type = 'mime_asm.png';
144                break;
145                case (preg_match('/asp/i', $mime_type) == true):
146                $type = 'mime_asp.png';
147                break;
148                case (preg_match('/x-au/i', $mime_type) == true):
149                $type = 'mime_au.png';
150                break;
151                case (preg_match('/msvideo/i', $mime_type) == true):
152                $type = 'mime_avi.gif';
153                break;
154                case (preg_match('/avs/i', $mime_type) == true):
155                $type = 'mime_avs.gif';
156                break;
157           
158                        /* B */
159            case (preg_match('/bcpio/i', $mime_type) == true):
160                $type = 'mime_bcpio.png';
161                break;
162            case (preg_match('/bh/i', $mime_type) == true):
163                $type = 'mime_bh.gif';
164                break;
165            case (preg_match('/binary/i', $mime_type) == true):
166                $type = 'mime_bin.png';
167                break;
168            case (preg_match('/bmp/i', $mime_type) == true):
169                $type = 'mime_bmp.png';
170                break;
171                case (preg_match('/x-bzip/i', $mime_type) == true):
172                $type = 'mime_bz.png';
173                break;
174
175            /* C */     
176                case (preg_match('/cab/i', $mime_type) == true):
177                $type = 'mime_cab.gif';
178                break;
179                case (preg_match('/clariscad/i', $mime_type) == true):
180                $type = 'mime_ccad.png';
181                break;
182                case (preg_match('/cocoa/i', $mime_type) == true):
183                $type = 'mime_cco.png';
184                break;
185                case (preg_match('/cdf/i', $mime_type) == true):
186                $type = 'mime_cdf.png';
187                break;
188                case (preg_match('/cert/i', $mime_type) == true):
189                $type = 'mime_cer.png';
190                break;
191                case (preg_match('/x-chat/i', $mime_type) == true):
192                $type = 'mime_chat.png';
193                break;
194                case (preg_match('/java-byte-code/i', $mime_type) == true || preg_match('/x-java-class/i', $mime_type) == true):
195                $type = 'mime_class.png';
196                break;
197                case (preg_match('/x-cpio/i', $mime_type) == true):
198                $type = 'mime_cpio.png';
199                break;
200                case (preg_match('/compactpro/i', $mime_type) == true || preg_match('/cpt/i', $mime_type) == true):
201                $type = 'mime_cpt.png';
202                break;
203                case (preg_match('/crl/i', $mime_type) == true):
204                $type = 'mime_crl.png';
205                break;
206                case (preg_match('/csh/i', $mime_type) == true):
207                $type = 'mime_csh.png';
208                break;
209            case (preg_match('/css/i', $mime_type) == true || preg_match('/x-pointplus/i', $mime_type) == true):
210                $type = 'mime_css.png';
211                break;
212
213            /* D */
214                case (preg_match('/msword/i', $mime_type) == true):
215                $type = 'mime_doc.gif';
216                break;
217               
218            /* E */
219            /* F */
220            /* G */
221                case (preg_match('/gif/i', $mime_type) == true):
222                $type = 'mime_gif.png';
223                break;
224            case (preg_match('/gzip/i', $mime_type) == true || preg_match('/x-compressed/i', $mime_type) == true):
225                $type = 'mime_gzip.gif';
226                break;
227
228            /* H */
229            case (preg_match('/html/i', $mime_type) == true):
230                $type = 'mime_html.gif';
231                break;
232               
233            /* I */
234                        case (preg_match('/img/i', $mime_type) == true || preg_match('/pict/i', $mime_type) == true):
235                $type = 'mime_img.gif';
236                break;
237
238            /* J */
239            case (preg_match('/jar/i', $mime_type) == true):
240                $type = 'mime_jar.gif';
241                break;
242            case (preg_match('/jpeg/i', $mime_type) == true):
243                $type = 'mime_jpg.png';
244                break;
245               
246            /* K */
247            /* L */
248            case (preg_match('/lha/i', $mime_type) == true):
249                $type = 'mime_lha.gif';
250                break;
251            case (preg_match('/lzh/i', $mime_type) == true):
252                $type = 'mime_lzh.png';
253                break;
254           
255            /* M */     
256            case (preg_match('/mpeg3/i', $mime_type) == true || preg_match('/mpeg-3/i', $mime_type) == true):
257                $type = 'mime_mp3.png';
258                break;
259            case (preg_match('/mpeg/i', $mime_type) == true || preg_match('/mpequrl/i', $mime_type) == true):
260                $type = 'mime_mpeg.gif';
261                break;
262
263            /* N */
264            /* O */
265            case (preg_match('/ogg/i', $mime_type) == true):
266                $type = 'mime_ogg.png';
267                break;
268
269            /* P */
270            case (preg_match('/pae/i', $mime_type) == true):
271                $type = 'mime_pae.gif';
272                break;
273                        case (preg_match('/pbs/i', $mime_type) == true):
274                $type = 'mime_pbs.gif';
275                break;
276                        case (preg_match('/pdf/i', $mime_type) == true):
277                $type = 'mime_pdf.gif';
278                break;
279                        case (preg_match('/png/i', $mime_type) == true):
280                $type = 'mime_png.png';
281                break;
282            case (preg_match('/pps/i', $mime_type) == true ||preg_match('/powerpoint/i', $mime_type) == true):
283                $type = 'mime_pps.gif';
284                break;
285           
286            /* Q */
287            /* R */
288                        case (preg_match('/rar/i', $mime_type) == true):
289                $type = 'mime_rar.gif';
290                break;
291           
292            /* S */
293                        case (preg_match('/sit/i', $mime_type) == true || preg_match('/stuffit/i', $mime_type) == true):
294                $type = 'mime_rat.gif';
295                break;
296           
297            /* T */
298            case (preg_match('/x-tar/i', $mime_type) == true || preg_match('/gnutar/i', $mime_type) == true):
299                $type = 'mime_tar.gif';
300                break;
301           
302            /* U */
303            /* V */
304            /* W */
305            /* X */
306            case (preg_match('/xml/i', $mime_type) == true):
307                $type = 'mime_xml.gif';
308                break;
309
310            /* Y */
311            /* Z */
312            case (preg_match('/zip/i', $mime_type) == true):
313                $type = 'mime_zip.gif';
314                break;
315                        case (preg_match('/7z/i', $mime_type) == true):
316                $type = 'mime_zip.gif';
317                break;
318                        case (preg_match('/zoo/i', $mime_type) == true):
319                $type = 'mime_zoo.gif';
320                break;
321                       
322                        /* unbestimmt */
323                case (preg_match('/octet-stream/i', $mime_type) == true):
324                $type = 'mime_exe.gif';
325                break;
326            case (preg_match('/plain/i', $mime_type) == true):
327                $type = 'mime_txt.gif';
328                break;
329                        case (preg_match('/image/i', $mime_type) == true):
330                $type = 'mime_img.gif';
331                break;
332               
333            default:
334                        $type = 'mime_default.gif';
335                }
336                return $type;
337        }
338}
339?>
Note: See TracBrowser for help on using the browser.