DBFS Download Modul V 1.3

Gesperrt
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

DBFS Download Modul V 1.3

Beitrag von wayfearer »

Hallo Leute,

ich habe mal ein klaines Download Modul geschrieben welches Dateien aus dem Stammordner des DBFS auliest, nach ID's sortiert und dann mit Icons, Name, Beschreibung und Größe in einer Tabelle ausspuckt.

Zur Zeit ist es sehr einfach gehalten und wird noch weiterentwickelt. Anregungen und Hilfe ist Willkommen !

Ein Zip Archiv mit den Icons findet ihr hier:
http://www.marcelbensch.de/upload/downloads/icons.zip

Das Modul hat nur einen Output Bereich da es zur Zeit ja lediglich die Dateien ausliest:

Output:

Code: Alles auswählen

<?php
/*****************************************************************************\
 * Downloadmodul für Datenbanksystem
 * -------------------------------------------------------------------------
 * written by       : Marcel Bensch @: info@marcelbensch.de
 * last modified   : 2007-22-04
\*****************************************************************************/
$fileicon  = array(
                 '*'    => 'images/file.gif',
                 'bz2'  => 'images/rarfile.gif',
                 'c'    => 'images/cfile.gif',
                 'cpp'  => 'images/cppfile.gif',
                 'doc'  => 'images/docfile.gif',
                 'exe'  => 'images/exefile.gif',
                 'h'    => 'images/hfile.gif',
                 'htm'  => 'images/htmfile.gif',
                 'html' => 'images/htmfile.gif',
                 'gif'  => 'images/imgfile.gif',
                 'gz'   => 'images/zipfile.gif',
                 'jpg'  => 'images/imgfile.gif',
                 'js'   => 'images/jsfile.gif',
                 'm'    => 'images/mfile.gif',
                 'mp3'  => 'images/mpgfile.gif',
                 'mpg'  => 'images/mpgfile.gif',
                 'pdf'  => 'images/pdffile.gif',
                 'png'  => 'images/imgfile.gif',
                 'ppt'  => 'images/pptfile.gif',
                 'rar'  => 'images/rarfile.gif',
                 'swf'  => 'images/swffile.gif',
                 'txt'  => 'images/txtfile.gif',
                 'xls'  => 'images/xlsfile.gif',
                 'zip'  => 'images/zipfile.gif',
                 );
            

// Datenbank abfragen ----------------------------------

$sql = "SELECT filename, description, filetype, size, dirname FROM con_upl WHERE dirname = 'dbfs:/' OR dirname LIKE 'dbfs:/%' OR dirname = 'downloads/' OR dirname LIKE 'downloads/%' ORDER BY idupl";
$db->query($sql);
//Tabelle und Header generieren ------------------------

echo '<table width="600" cellspacing="5"><tr style="color:white; background-color:#00377d; font-face:verdana; size: 10pt; font-weight:bold;">
<td>&nbsp;Typ&nbsp;</td>
<td>&nbsp;Name&nbsp;</td>
<td>&nbsp;Beschreibung&nbsp;</td>
<td>&nbsp;Gr&ouml;&szlig;e&nbsp;</td>
</tr>';

// Tabelle mit Daten füllen ---------------------------
while ($db->next_record()) {
$filename = $db->f('filename');
$description = $db->f('description');
$description = urldecode($description);
$filetype = $db->f('filetype');
$size_ = $db->f('size');
$size = round($size_/1000, 2);
$dir = $db->f('dirname');

if ($size >= 1000) { $size = round($size/1000, 2); $printsize = $size.'&nbsp;MB'; }
else { $printsize = $size.'&nbsp;kb';}

if ($dir == 'dbfs:/') {
$linktarget = 'dbfs.php?file=dbfs:/';
} else { $linktarget = 'uploads/'.$dir; }

echo '<tr><td valign="top"><img src="'.$fileicon[$filetype].'"/></td>
     <td valign="top"><a href="'.$linktarget.$filename.'">'.$filename.'</a></td>
     <td valign="top">'.$description.'</td>
     <td valign="top">'.$printsize.'</td>     ',"\n";
}
echo '</tr></table>';
$db->free();

?> 
Bis dahin mal,

Wayfearer

------------------- EDIT ------------------------------
Geänderte Version 1.1:

- Listet jetzt auch Downloads aus dem Verzeichnis uploads/download auf (Wegen Problem bei Dateien über 8 MB - diese können hier platziert werden)

- Problem bei der Ausgabe von Dateibeschreibung behoben

- Dateigröße wird Variabel in kb oder MB angegeben

------------------- EDIT 2 ------------------------------
Geänderte Version 1.2:

- Listet jetzt alle Downloads aus upload/Download auf auch welche, die in einem Unterverzeichnis von Downloads liegen.

- Verzeichniserkennung verbessert
Zuletzt geändert von wayfearer am Mo 5. Nov 2007, 11:31, insgesamt 1-mal geändert.
Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Beitrag von Jamest »

Hi wayfearer,

ich hab es gerade mal getestet, aber leider geht die verlinkung auf die dbfs dateien ins leere.

liegt es daran das ich mod rewrite nutze?

hier findest du den bereich:

http://dev.recht-und-vertrag.de/en/down ... loads.html

grüße

Jamest
wosch

Beitrag von wosch »

Jamest hat geschrieben:liegt es daran das ich mod rewrite nutze?
Martin, das liegt daran das @wayfearer eine Verzeichnis-Struktur nutzt die nicht dem Contenido-Standard entspricht.

Du solltest bei einem Modul bleiben, x-Versuche mit unterschiedlichen Modulen bringt x+1 Fehler!!!

Was macht eigentlich a**x oder *eh, nix mehr damit am Hut ???
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer »

dazu nur:

das modul wurde unter der 4.6.2 entwickelt und da scheint die struktur anders gewesen zu sein. ich hatte es so ja genutzt und es lief auch. es müssen gewiss nur hier und da pfade angepasst werden ..


mfg,

way
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer »

So sollte es gehen:
modul Output Version 1.3:

Code: Alles auswählen

<?php
/*****************************************************************************\
 * Downloadmodul für Datenbanksystem version 1.3
 * -------------------------------------------------------------------------
 * written by       : Marcel Bensch @: info@marcelbensch.de
 * last modified   : 2007-11-05
\*****************************************************************************/
$fileicon  = array(
                 '*'    => 'images/file.gif',
                 'bz2'  => 'images/rarfile.gif',
                 'c'    => 'images/cfile.gif',
                 'cpp'  => 'images/cppfile.gif',
                 'doc'  => 'images/docfile.gif',
                 'exe'  => 'images/exefile.gif',
                 'h'    => 'images/hfile.gif',
                 'htm'  => 'images/htmfile.gif',
                 'html' => 'images/htmfile.gif',
                 'gif'  => 'images/imgfile.gif',
                 'gz'   => 'images/zipfile.gif',
                 'jpg'  => 'images/imgfile.gif',
                 'js'   => 'images/jsfile.gif',
                 'm'    => 'images/mfile.gif',
                 'mp3'  => 'images/mpgfile.gif',
                 'mpg'  => 'images/mpgfile.gif',
                 'pdf'  => 'images/pdffile.gif',
                 'png'  => 'images/imgfile.gif',
                 'ppt'  => 'images/pptfile.gif',
                 'rar'  => 'images/rarfile.gif',
                 'swf'  => 'images/swffile.gif',
                 'txt'  => 'images/txtfile.gif',
                 'xls'  => 'images/xlsfile.gif',
                 'zip'  => 'images/zipfile.gif',
                 );
           

// Datenbank abfragen ----------------------------------

$sql = "SELECT filename, description, filetype, size, dirname FROM ".$cfg['tab']['upl']." WHERE dirname = 'dbfs:/' OR dirname LIKE 'dbfs:/%' OR dirname = 'downloads/' OR dirname LIKE 'downloads/%' ORDER BY idupl";
$db->query($sql);
//Tabelle und Header generieren ------------------------

echo '<table width="600" cellspacing="5"><tr style="color:white; background-color:#00377d; font-face:verdana; size: 10pt; font-weight:bold;">
<td>&nbsp;Typ&nbsp;</td>
<td>&nbsp;Name&nbsp;</td>
<td>&nbsp;Beschreibung&nbsp;</td>
<td>&nbsp;Gr&ouml;&szlig;e&nbsp;</td>
</tr>';

// Tabelle mit Daten füllen ---------------------------
while ($db->next_record()) {
$filename = $db->f('filename');
$description = $db->f('description');
$description = urldecode($description);
$filetype = $db->f('filetype');
$size_ = $db->f('size');
$size = round($size_/1000, 2);
$dir = $db->f('dirname');

if ($size >= 1000) { $size = round($size/1000, 2); $printsize = $size.'&nbsp;MB'; }
else { $printsize = $size.'&nbsp;kb';}

$regex = "/^dbfs:\//";
if (preg_match($regex, $dir)) {
$linktarget = 'dbfs.php?file=dbfs:/';
} else { $linktarget = 'upload/'.$dir; }

echo '<tr><td valign="top"><img src="'.$fileicon[$filetype].'"/></td>
     <td valign="top"><a href="'.$linktarget.$filename.'">'.$filename.'</a></td>
     <td valign="top">'.$description.'</td>
     <td valign="top">'.$printsize.'</td>     ',"\n";
}
echo '</tr></table>';
$db->free();

?> 

Das problem war dass er das verzeichnis nicht richtig erkannt hat, da du im DBFS ein unterverzeichnis hast. jetzt geht es hoffentlich, habe das jetzt mit einer regular_expression überprüft ...


Mfg,

Way
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)
Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Beitrag von Jamest »

Hi Wayfearer,

danke schonmal das du dich mir an nimmst ;-)

Ich habe das Modul gerade mal getestet, jetzt zeigt sich nur eine weisse Seite, du kannst gern bei dem oben geposteten Link schauen.

Grüße

Jamest
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer »

Probiers hiermit:

Code: Alles auswählen

<?php
/*****************************************************************************\
 * Downloadmodul für Datenbanksystem version 1.3
 * -------------------------------------------------------------------------
 * written by       : Marcel Bensch @: info@marcelbensch.de
 * last modified   : 2007-11-05
\*****************************************************************************/
$fileicon  = array(
                 '*'    => 'images/file.gif',
                 'bz2'  => 'images/rarfile.gif',
                 'c'    => 'images/cfile.gif',
                 'cpp'  => 'images/cppfile.gif',
                 'doc'  => 'images/docfile.gif',
                 'exe'  => 'images/exefile.gif',
                 'h'    => 'images/hfile.gif',
                 'htm'  => 'images/htmfile.gif',
                 'html' => 'images/htmfile.gif',
                 'gif'  => 'images/imgfile.gif',
                 'gz'   => 'images/zipfile.gif',
                 'jpg'  => 'images/imgfile.gif',
                 'js'   => 'images/jsfile.gif',
                 'm'    => 'images/mfile.gif',
                 'mp3'  => 'images/mpgfile.gif',
                 'mpg'  => 'images/mpgfile.gif',
                 'pdf'  => 'images/pdffile.gif',
                 'png'  => 'images/imgfile.gif',
                 'ppt'  => 'images/pptfile.gif',
                 'rar'  => 'images/rarfile.gif',
                 'swf'  => 'images/swffile.gif',
                 'txt'  => 'images/txtfile.gif',
                 'xls'  => 'images/xlsfile.gif',
                 'zip'  => 'images/zipfile.gif',
                 );
           

// Datenbank abfragen ----------------------------------

$sql = "SELECT filename, description, filetype, size, dirname FROM ".$cfg['tab']['upl']." WHERE dirname = 'dbfs:/' OR dirname LIKE 'dbfs:/%' OR dirname = 'downloads/' OR dirname LIKE 'downloads/%' ORDER BY idupl";
$db->query($sql);
//Tabelle und Header generieren ------------------------

echo '<table width="600" cellspacing="5"><tr style="color:white; background-color:#00377d; font-face:verdana; size: 10pt; font-weight:bold;">
<td>&nbsp;Typ&nbsp;</td>
<td>&nbsp;Name&nbsp;</td>
<td>&nbsp;Beschreibung&nbsp;</td>
<td>&nbsp;Gr&ouml;&szlig;e&nbsp;</td>
</tr>';

// Tabelle mit Daten füllen ---------------------------
while ($db->next_record()) {
$filename = $db->f('filename');
$description = $db->f('description');
$description = urldecode($description);
$filetype = $db->f('filetype');
$size_ = $db->f('size');
$size = round($size_/1000, 2);
$dir = $db->f('dirname');

if ($size >= 1000) { $size = round($size/1000, 2); $printsize = $size.'&nbsp;MB'; }
else { $printsize = $size.'&nbsp;kb';}

$regex = "/^dbfs:\//";
if (preg_match($regex, $dir)) {
$linktarget = 'dbfs.php?file='.$dir;
} else { $linktarget = 'upload/'.$dir; }

echo '<tr><td valign="top"><img src="'.$fileicon[$filetype].'"/></td>
     <td valign="top"><a href="'.$linktarget.$filename.'">'.$filename.'</a></td>
     <td valign="top">'.$description.'</td>
     <td valign="top">'.$printsize.'</td>     ',"\n";
}
echo '</tr></table>';
$db->free();

?> 
mfg,

Wayfearer
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)
Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Beitrag von Jamest »

Perfekt, das funktioniert nun tadellos. :-)

Ich danke dir
Gesperrt