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

Code: Alles auswählen

if (move_uploaded_file($_FILES['file']['tmp_name'
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&auml;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
}
?>