Seite 2 von 2
Verfasst: Do 11. Okt 2007, 16:01
von HerrB
Möglich, aber wenn es für Contenido geht, muss es eigentlich auch woanders gehen.
Bitte schreibe mal, was ein
Code: Alles auswählen
echo "Src: ". $_FILES['file']['tmp_name'][0] . "<br />Dest: ".$cfgClient[$client]["path"]["frontend"].$pfad."/".$file_name;
vor
liefert.
Gruß
HerrB
Verfasst: Fr 12. Okt 2007, 07:57
von Moudi
Das Frontend liefert folgendes:
Src: /
Dest: /home/httpd/vhosts/narrensicher.ch/httpdocs/cms/upload/Download/Repertoir/Bestätigung.pdfDatei nicht hochgeladen
Stimmen da die ersten drei Positionen?!
Grüsse
moudi
Verfasst: Fr 12. Okt 2007, 15:00
von HerrB
Src ist falsch.
Ändere mal
Code: Alles auswählen
echo "Src: ". $_FILES['file']['tmp_name'][0] . "<br />Dest: ".$cfgClient[$client]["path"]["frontend"].$pfad."/".$file_name;
in
Code: Alles auswählen
echo "Src: ". $file. "<br />Dest: ".$cfgClient[$client]["path"]["frontend"].$pfad."/".$file_name;
Muss ich mir doch nochmal das Modul ansehen, da wird was nicht richtig übergeben - aber es kann auch meine letzte Änderung sein ($_FILES['file']['tmp_name'][0]), daher testen wir nochmal das Original ($file).
Gruß
HerrB
Upload-Module
Verfasst: Fr 2. Nov 2007, 09:41
von YAY
Hallo om,
Danke das du das Module zur Verfügung stellst, ist echt klasse.
Nun komme ich allerdings zu meinem Problem: das Auflisten der Inhalte vom Upload Ordner ist vorhanden, funktioniert einwandfrei. Aber wenn ich Daten Uploaden möchte dann schreibt er mir immer die Fehlermeldung: "Es wurde keine Datei ausgewählt! Bitte Datei auswählen:"
Ich habe festgestellt das im Quelltext bei Form "action" keine Einträge (Pfad) vorhanden ist, ist das so gewollt?
Vielleicht kannst du mir mal einen Tipp geben woran das liegt.
Ich benutze übrigens die Version 4.6.15.
Verfasst: Fr 2. Nov 2007, 09:55
von YAY
Danke om,
Diese Nachricht die ich von om bekommen hatte, möchte ich es allen anderen die genau diese Fehler hatten zur verfühgung stellen.
Folgende Nachricht erhielt ich von om:
########### ab hier ############
Das mit dem action ist schon ok. Es soll ja auf dieselbe Seite verwiesen werden. Probier's mal hiermit:
Input:
Code: Alles auswählen
?>
<table cellspacing="0" cellpadding="0" cellpadding="4">
<!--<tr>
<td style="font-size:11px">Upload-Verzeichnis:</td>
<td>
<select name="CMS_VAR[0]">
<option value="0"></option>
<?php
$sql = "SELECT DISTINCT dirname from ".$cfg["tab"]["upl"];
$db->query($sql);
while ( $db->next_record() ) {
$upload_dir=substr_replace($db->f("dirname"),'',(strlen($db->f("dirname"))-1));
if ( "CMS_VALUE[0]" == $upload_dir) {
echo '<option selected="selected" value="'.$upload_dir.'">'.$db->f("dirname").'</option>';
} else {
echo '<option value="'.$upload_dir.'">'.$db->f("dirname").'</option>';
}
}
?>
</select>
</td>
</tr> -->
<tr>
<td style="font-size:11px">Datei-Typ(en):</td>
<td><input type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]"></td>
</tr>
<tr>
<td style="font-size:11px" colspan ="2">Erlaubte Datei-Typ(en) mit einem | trennen. Bsp.: gif|jpg|pdf</td>
</tr>
<tr>
<td style="font-size:11px">maximale Größe:</td>
<td><input type="text" name="CMS_VAR[2]" value="CMS_VALUE[2]"> KB</td>
</tr>
<tr>
<td style="font-size:11px" colspan ="2">1000 KB entsprechen ca. 1 MB</td>
</tr>
</table>
<?php
Output:
Code: Alles auswählen
<?php
cInclude('includes', 'functions.upl.php');
// Absoluter Pfad zum Ordner in den die Datei hochgeladen werden soll.
//$pfad = "upload/CMS_VALUE[0]";
// Ist eine maximale Größe der Datei festgelegt worden ?
if ("CMS_VALUE[2]" == "") {
$sizeabfrage = "no";
}
else {
$sizeabfrage = "yes";
}
// Maximale Größe der Datei (Falls $sizeabfrage = "yes" ist)
$filesize = "CMS_VALUE[2]"*1.024*1024;
// Wird die maximale Größe auch angezeigt ?
if ("CMS_VALUE[2]" == "") {
$sizeanzeige = "no";
}
else {
$sizeanzeige = "yes";
}
// Was für Dateitypen sollen erlaubt sein ?
$extend = "CMS_VALUE[1]";
// Sollen die erlaubten Dateitypen angezeigt werden ?
$extendanzeige = "yes";
?>
<?php
$fehler = FALSE;
$file_name = $_FILES['file']['name'];
$file_tmp_name = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
if ($senden) {
$pfad = "upload/kategorien/".$_REQUEST['upldir'];
if ($file_name == "") {
$desc = $Beschreibung;
echo "<font color=#FF0000><b>Es wurde keine Datei ausgewählt!</b></font>";
$fehler = TRUE;
}
if (!$fehler)
if ($_REQUEST['upldir'] == "0") {
$desc = $Beschreibung;
echo "<font color=#FF0000><b>Es wurde kein Verzeichnis ausgewählt!</b></font>";
$fehler = TRUE;
}
if (!$fehler)
if (file_exists("$pfad/$file_name")) {
$desc = $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Dateiname schon vorhanden!</b></font>";
$fehler = TRUE;
}
if (!$fehler)
if ($sizeabfrage == "yes") {
if ($file_size > $filesize) {
$desc = $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Die Datei ist zu groß!</b></font>";
$fehler = TRUE;
}
}
if (!$fehler)
if (!eregi("($extend)$", $file_name)) {
$desc = $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Dieser Dateityp ist nicht erlaubt!</b></font>";
$fehler = TRUE;
}
if (!$fehler) {
// if (copy($file, $pfad."/".$file_name)) {
if (move_uploaded_file($file_tmp_name, $pfad."/".basename($file_name))) {
chmod($pfad."/".basename($file_name), 0777);
uplSyncDirectory($pfad."/");
$db = new DB_Contenido;
$sql = 'SELECT * FROM `'.$cfg["tab"]["upl"].'` WHERE `filename` = "'.$file_name.'"';
$db->query($sql);
$db->next_record();
$ID = $db->f('idupl');
$sql = 'UPDATE `'.$cfg["tab"]["upl"].'` SET `description` = "'.$Beschreibung.'" WHERE `idupl` = "'.$ID.'"';
$db->query($sql);
echo $cfg["tab"]["upl"];
echo $ID;
echo $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "Ordner: ".$pfad."<br>";
echo "<font color=#00FF00><b>Datei hochgeladen</b></font><BR>";
$fehler = FALSE;
}
else {
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Datei nicht hochgeladen</b></font>";
$desc = $Beschreibung;
$fehler = TRUE;
}
}
}
if ($fehler || !$senden) {
$folders = array();
$dir = "upload/kategorien";
$handle = @opendir($dir);
while( $file = readdir($handle) ) {
if( is_dir("$dir/$file") ) {
if (($file!=".") && ($file!="..")) {
$folders[] = $file;
}
}
}
@closedir($handle);
foreach ($folders as $f) {
$dir = "upload/kategorien/".$f;
$handle = @opendir($dir);
while( $file = readdir($handle) ) {
if( is_dir("$dir/$file") ) {
if (($file!=".") && ($file!="..")) {
$folders[] = $f."/".$file;
}
}
}
@closedir($handle);
}
sort($folders);
//reset($folders);
//print_r($folders);
?>
<form action="<?php $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<b>Bitte Upload-Verzeichnis auswählen:</b>
<BR><BR>
<select name="upldir">
<option value="0"></option>
<?php
/*$sql = "SELECT DISTINCT dirname from ".$cfg["tab"]["upl"];
$db->query($sql);
while ( $db->next_record() ) {
$upload_dir=substr_replace($db->f("dirname"),'',(strlen($db->f("dirname"))-1));
if ( $_REQUEST['upldir'] == $upload_dir) {
echo '<option selected="selected" value="'.$upload_dir.'">'.$db->f("dirname").'</option>';
} else {
echo '<option value="'.$upload_dir.'">'.$db->f("dirname").'</option>';
}
}*/
foreach ($folders as $f) {
if ( $_REQUEST['upldir'] == $f) {
echo '<option selected="selected" value="'.$f.'">'.$f.'</option>';
} else {
echo '<option value="'.$f.'">'.$f.'</option>';
}
}
?>
</select>
<BR><BR><BR>
<b>Bitte Datei auswählen:</b>
<BR>
<?php
if ($sizeanzeige == "yes") {
echo ("Maximale Größe: ".($filesize/1024/1024)." MB");
}
?>
<BR>
<?php
if ($extendanzeige == "yes" && trim($extend) != "") {
echo ("Erlaubte Dateitypen: ".str_replace("|",", ",$extend)."<BR><BR>");
}
?>
<input type="file" size="40" name="file">
<BR><BR>
<b>Beschreibung</b> (optional):<br>
<textarea name="Beschreibung" wrap="virtual" rows="5" cols="60" maxlength="10"><?php echo $desc; ?></textarea>
<BR><BR>
<input type="Submit" name="senden" value="Hochladen"><br>
</form>
<?php
}
?>
#################### bis hier #################
Bitte Folgendes Beachten: Der Pfad "upload/kategorien/" muss an eurem Verzeichniss angepasst werden. Ich meine es tauchen insgesamt 3 x "upload/kategorien/" auf.
Nochmals besten Dank! an om.
Ich hoffe du hast nichts dagegen om, wenn ich die Mail hier veröffentliche.
Verfasst: Fr 9. Nov 2007, 11:53
von Moudi
Hey YAY
Vielen Dank für dein Posting, mit diesem Code läuft's bei mir jetzt auch!!! Vielen vielen DANK!!!
Greez
moudi
Re: Upload-/Download-Modul für's Frontend
Verfasst: Fr 12. Jun 2009, 11:29
von rethus
Ich hbae den gepostetedn Output von YAY mal etwas überarbeitet, optimiert und noch ein paar Fehler rausgezogen...
Hier zur freien Verfügung:
Code: Alles auswählen
<?php
cInclude('includes', 'functions.upl.php');
$fehler = FALSE;
$dir ="upload/"; // Basis-Verzeichnis für Uploads
$pfad = $dir."CMS_VALUE[0]"; // erzwungener Upload-Bereich
if(isset($_REQUEST['upldir'])) $pfad = $pfad."/".$_REQUEST['upldir']; // Wenn ein Unterverz. gewählt wurde
$file_name = $_FILES['file']['name'];
$file_tmp_name = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
// Ist eine maximale Größe der Datei festgelegt worden ?
if ("CMS_VALUE[2]" == ""){
$sizeanzeige = "no"; // max groeße anzeigen?
$sizeabfrage = "no";
}
else{
$sizeanzeige = "yes"; // max groeße anzeigen?
$sizeabfrage = "yes";
}
// Maximale Größe der Datei (Falls $sizeabfrage = "yes" ist)
$filesize = "CMS_VALUE[2]"*1.024*1024;
// erlaubte Dateitypen
$extend = "CMS_VALUE[1]";
// erlaubte Dateitypen anzeigen?
$extendanzeige = "yes";
if ($senden) {
if ($file_name == "") {
$desc = $Beschreibung;
echo "<font color=#FF0000><b>Es wurde keine Datei ausgewählt!</b></font>";
$fehler = TRUE;
}
if (!$fehler)
if ($_REQUEST['upldir'] == "0") {
$desc = $Beschreibung;
echo "<font color=#FF0000><b>Es wurde kein Verzeichnis ausgewählt!</b></font>";
$fehler = TRUE;
}
if (!$fehler)
if (file_exists("$pfad/$file_name")) {
$desc = $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Dateiname schon vorhanden!</b></font>";
$fehler = TRUE;
}
if (!$fehler)
if ($sizeabfrage == "yes") {
if ($file_size > $filesize) {
$desc = $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Die Datei ist zu groß!</b></font>";
$fehler = TRUE;
}
}
if (!$fehler)
if (!eregi("($extend)$", $file_name)) {
$desc = $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Dieser Dateityp ist nicht erlaubt!</b></font>";
$fehler = TRUE;
}
if (!$fehler) {
if (move_uploaded_file($file_tmp_name, $pfad."/".basename($file_name))) {
chmod($pfad."/".basename($file_name), 0777);
uplSyncDirectory($pfad."/");
$db = new DB_Contenido;
$sql = 'SELECT * FROM `'.$cfg["tab"]["upl"].'` WHERE `filename` = "'.$file_name.'"';
$db->query($sql);
$db->next_record();
$ID = $db->f('idupl');
$sql = 'UPDATE `'.$cfg["tab"]["upl"].'` SET `description` = "'.$Beschreibung.'" WHERE `idupl` = "'.$ID.'"';
$db->query($sql);
echo $cfg["tab"]["upl"];
echo $ID;
echo $Beschreibung;
echo "Datei: ".$file_name."<br>";
echo "Ordner: ".$pfad."<br>";
echo "<font color=#00FF00><b>Datei hochgeladen</b></font><BR>";
$fehler = FALSE;
}
else {
echo "Datei: ".$file_name."<br>";
echo "<font color=#FF0000><b>Datei nicht hochgeladen</b></font>";
$desc = $Beschreibung;
$fehler = TRUE;
}
}
}
if ($fehler || !$senden) {
$folders = array();
$handle = @opendir($pfad);
while( $file = readdir($handle) ) {
if( is_dir("$pfad/$file") ) {
if (($file!=".") && ($file!="..")) {
$folders[] = $file;
}
}
}
@closedir($handle);
if(count($folders)>0){ // Wenn Unterverzeichnisse vorhanden...
sort($folders);
}
?>
<form action="<?php $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<?php if(count($folders)>0){ // Wenn Unterverzeichnisse vorhanden...?>
<b>Bitte Upload-Verzeichnis auswählen:</b>
<BR><BR>
<select name="upldir">
<option value="-1">Bitte wählen</option>
<?php
foreach ($folders as $f) {
if ( $_REQUEST['upldir'] == $f)
echo '<option selected="selected" value="'.$f.'">'.$f.'</option>';
else
echo '<option value="'.$f.'">'.$f.'</option>';
}
?>
</select>
<BR><BR><BR>
<?php } ?>
<b>Bitte Datei auswählen:</b><BR>
<?php if ($sizeanzeige == "yes") echo ("Maximale Größe: ".($filesize/1024/1024)." MB"); ?>
<BR>
<?php if ($extendanzeige == "yes" && trim($extend) != "") echo ("Erlaubte Dateitypen: ".str_replace("|",", ",$extend)."<BR><BR>"); ?>
<input type="file" size="40" name="file">
<BR><BR>
<b>Beschreibung</b> (optional):<br>
<textarea name="Beschreibung" wrap="virtual" rows="5" cols="60" maxlength="10"><?php echo $desc; ?></textarea>
<BR><BR>
<input type="Submit" name="senden" value="Hochladen"><br>
</form>
<?php
}
?>