Seite 8 von 14

Verfasst: Di 27. Jun 2006, 15:19
von Dinkel
das mit der Vorbelegung habe ich bisher noch nicht lösen können, das ist aber nicht das Problem...

Verfasst: Mi 28. Jun 2006, 09:13
von rene04
hallo,

ich habe das wie bereits erwähnt etwas modifiziert. es wird eine kundennummer mit angegeben und ein verz mit dessen namen angelegt in welchem dann die hochgeladene datei abgelegt wird. leider bekommt der erzeugte ordner im die rechte 755 obwohl ich im code explizit 777 setze.

an was kann das liegen?

Code: Alles auswählen

<?
$buttonstyle1 = "width:250px;height:20px;"; // Button 1
$buttonstyle2 = "width:100px;height:20px;margin-left:10px;"; // Button 2
$headcolor = "background-color:#eeeeee;padding:2px;"; // Tabellenkopf

$username="";
$adminname="";

function cut($text, $length) {
        $dec = array("\"", "'", "\\", '\"', "\'", "<", ">");
        $enc = array(""", "'", "\", """, "'", "<", ">");
        $text = str_replace($enc, $dec, $text);
        if (strlen($text) > $length) {
                $text = substr($text, 0, ($length-3))."...";
        }
        $text = str_replace($dec, $enc, $text);
        return $text;
}

$path="upload/CMS_VALUE[4]";
$username=$auth->auth['uname'];

$delpool="CMS_VALUE[5]";
$treffer_del = substr_count($delpool, $username);
if ($treffer_del==1) {
	$deluser=$username;
}

$adminpool="CMS_VALUE[1]";
$treffer_admin = substr_count($adminpool, $username);
if ($treffer_admin==1) {
	$adminname=$username;
}

if ($username==$adminname) {
	$max_filesize_mb=CMS_VALUE[3];
} else {
	$max_filesize_mb=CMS_VALUE[2];
}

$max_filesize=bcmul($max_filesize_mb,1000000);

function parseByteSize($size,$digits=2,$dir=false){
        $kb=1024; $mb=1024*$kb; $gb=1024*$mb; $tb=1024*$gb;
        if(($size==0)&&($dir)){return "Empty";}
        else if($size<$kb){return $size." Bytes";}
        else if($size<$mb){return round($size/$kb,$digits)." KB";}
        else if($size<$gb){return round($size/$mb,$digits)." MB";}
        else if($size<$tb){return round($size/$gb,$digits)." GB";}
        else{return round($size/$tb,$digits)." TB";}
}


if ($step=="delete" && $username=="$adminname") {
      unlink($path.$filename);
}


if (isset($_POST['uploadfile'])) 
{
  if ($kdnr=="")
  {
    echo "<font color=red><b>Bitte geben Sie Ihre Kundennummer an.</b></font><br>";
  }
  else
  {
        $fileext = $_FILES['myfile']['type'];
	$filename = $_FILES['myfile']['name'];
   	$filesize = $_FILES['myfile']['size'];
	$filetemp = $_FILES['myfile']['tmp_name'];
	if ($filesize > $max_filesize) {
		$error = "<b>Die Datei ist mit $filesize Bytes größer als $max_filesize_mb MB.</b>";
	}
	
        if ($filename != "")
        {
          if ($error == "") 
          {
            if (!file_exists($path.$kdnr."/"))
            {
              mkdir($path."$kdnr"."/",0777);
            }
           move_uploaded_file($filetemp, $path.$kdnr."/"."$filename");
           chmod($path."$kdnr"."/"."$filename",0777);
           echo "<font color=red><b>Die Datei wurde erfolgreich hochgeladen.</b></font><br>";
          } 
          else 
          {
 	    echo "$error";
          }
        }
        else
        {
          echo "<font color=red><b>Bitte wählen Sie die hochzuladende Datei aus.</b></font><br>";
        }
  }
}

if (CMS_VALUE[8]==1 || ($username!="" && $username!="nobody")) {
	echo "<div style=\"width:610px;\" id=\"upload\"><form name=\"uploadform\" method=\"post\" action=\"$PHP_SELF?idcat=$idcat\" enctype=\"multipart/form-data\">
         <div><table>
         <tr><td>Kundennummer:</td><td>Datei:</td></tr>
	 <tr><td><input type=\"text\" name=\"kdnr\" value=\"".$kdnr."\" style=\"width:110px;\" maxlength=5></td><td><input type=\"file\" name=\"myfile\" class=\"button\"><input type=\"submit\" name=\"uploadfile\" value=\"hochladen\" class=\"button\"></td></tr></table></div>
         </form>
         <div style=\"margin-bottom:5px;\"><strong>Bitte nur virengescannte Dateien hochladen!</strong></div>";
} else {
	echo "<div>";
}

$show_list=CMS_VALUE[7];
if ($show_list==1 || $username==$adminname) {
	$handle=opendir($path);
         while ($file = readdir($handle)){
	        if ($file!='.' && $file!='..' && $file!='/') {
	                if (!@opendir($path.$file)==true) {
		        	$file_list[] = $file;
	                }
	        }
         }
	closedir($handle);
         @sort($file_list);

	echo "<table align=\"left\" width=\"600px\" cellspacing=\"1\" border=\"1\" cellpadding=\"1\" style=\"border-collapse: collapse; background:#bbbbbb;\">
	<tr style=\"$headcolor\">
	<td style=\"$headcolor\">Dateiname</td>
	<td style=\"$headcolor\">Größe</td>
	<td style=\"$headcolor\">Aktion</td>";

	if ($username==$deluser) echo "<td><span style=\"color:#ff0000;\">löschen</span></td>";

	echo "</tr>";
         for ($count=0;$file_list[$count]!="";$count++) {
		echo "<tr style=\"background-color:#ffffff;\" onmouseover=\"this.style.backgroundColor = '#dddddd'\" onmouseout=\"this.style.backgroundColor = '#ffffff'\">
		<td style=\"padding:2px;\"><font title='$file_list[$count]'>".cut($file_list[$count],CMS_VALUE[6])."</font></td>
		<td style=\"padding:2px;\">".parseByteSize(@filesize($path.$file_list[$count]),2,false)."</td>
		<td style=\"padding:2px;\"><a href='".$path."$file_list[$count]' target='_blank'><nobr>öffnen | speichern</nobr></a></td>";

	         if ($username==$deluser) {
	                  echo "<td><a href='$PHP_SELF?idcat=$idcat&step=delete&filename=$file_list[$count]' target='_self'>löschen</a></td>";
	         }
	         echo "</tr>";
	}
	echo "</table></div><br clear=\"all\">";
} else {
	echo "</div><br clear=\"all\">";
}
?>
gruesse rene

Verfasst: Mi 28. Jun 2006, 13:40
von php0815
Das problem mit den Rechten hatte ich auch.
Habe dann einfach ein chmod angehängt:

Code: Alles auswählen

 if (!file_exists($path.$kdnr."/"))
            {
              mkdir($path."$kdnr"."/",0777);
              chmod($path."$kdnr"."/",0777);
            } 
Dann hat das ganze bei mir gefunzt. Ist zwar nicht ganz so sauber aber die haupsache es tut.

Verfasst: Mi 28. Jun 2006, 13:41
von rene04
cool. danke

gruesse rene

Verfasst: Di 18. Jul 2006, 16:50
von Dinkel
Es gibt wieder eine neue Version. Geändert hat sich, dass wenn kein Häkchen bei "User/Gäste dürfen Upload sehen" stand, dann konnten Gäste oder User dies dennoch sehen. Das ist nun behoben. Neue Version ist in der SIG...

Verfasst: Di 18. Jul 2006, 21:11
von HerrB
Bitte auf der ersten Seite das Änderungsdatum aktualisieren... Danke.

Gruß
HerrB

Verfasst: Fr 20. Okt 2006, 12:54
von Dinkel
Das Modul habe ich mit der Version 4.6.15 getestet und es funktioniert einwandfrei.

Version 1.5 ändert folgendes:
- Dateien werden mit chmod 664 versehen, damit diese über FTP gesichert werden können
- die Breite des DIVs und der Tabelle wurden von 600px auf 100% umgestellt, somit fügt sich das ganze besser in Layouts ein. Kann aber beliebig über das Modul verändert werden

Datei ist wie immer in der Signatur aktualisiert.

Verfasst: Do 26. Okt 2006, 06:38
von mreif
Hallo Dinkel,

ich habe meine Contenido Version auf die 4.6.15 upgedatet und dabei auch gleich Deine Version des Moduls auf den neuen Stand gebracht.

Es tritt dabei noch folgendes Problem auf.
Haken bei "Gäste dürfen Upload sehen" ist gesetzt - Gast sieht aber nichts.

zur Info:
Die Auswahl "Gäste dürfen Download sehen" funktioniert.
Die Anzeige für die hinterlegten Modul-Administratioren funktioniert ebenfalls.

Es wäre prima, wenn Du das mit "Gäste dürfen Upload sehen" noch einmal kontrollieren würdest.
/m

Verfasst: Do 26. Okt 2006, 11:44
von Dinkel
geht wieder... hab ich es mit den rechten zu gut gemeint ;)

Verfasst: Do 26. Okt 2006, 11:49
von mreif
Danke, habe es soeben eingebunden - funktioniert jetzt wieder, wie bisher.
/m

Verfasst: Di 21. Nov 2006, 13:48
von derSteffen
Hat denn jemand eine Lösung für das Verhalten, dass man den Uploadordner nicht auswählen kann, obwohl alle Ordner die 777-Rechte haben?

Verwende die aktuelle Modul - Version vom 26.10 und die Contenido-Version 4.6.8.5 MR

Verfasst: Di 21. Nov 2006, 14:25
von Dinkel
so einfach kann man das nicht sagen. könntest Du mir nen Admin-Zugang zu Deinem System via PN zukommen lassen? Dann kann ich mal im System schauen...

//EDIT: nachdem ich den Zugriff auf das System hatte konnte ich leider auch nicht sehr viel mehr machen... Kann es sein, dass es an der Version MR liegt?

Verfasst: Mi 22. Nov 2006, 21:39
von mreif
Hallo Steffen,

das Problem hatte ich auch mal.
Die Upload-Dateien und Pfade sind ja auch alle in der SQL abgespeichert.
Ich hatte mir damals SQL über PhpMyAdmin angesehen und festgestellt, dass dort noch Dateien / Pfade eingetragen waren, die ich schon längst gelöscht hatte und die daher eigentlich nicht mehr existent waren.

Du findest die Eintragungen in der SQL Struktur unter con_upl.

Diese Pfade habe ich dann manuell aus der SQL gelöscht, die Datenbank komprimiert und siehe da ... es hat wieder funktioniert und hatte gar nichts mit dem Up-&Download Modul zu tun ;-)

Ich hoffe, das hilft Dir ein wenig weiter.

And don't forget ... Backup !!!

/m

Verfasst: Do 30. Nov 2006, 12:48
von helik
Hi...
also bei mir funktioniert das Modul nicht wirklich... bekomme keine Ordnerauswahl... hinzu kommt diese Fehlermeldung

Call to undefined function getEffectiveSetting() in C:\XX\xx\xx\front_crcloginform.inc.php on line 19

Kann jemand helfen....??

Verfasst: Do 30. Nov 2006, 12:55
von Dinkel
anscheinend lässt Du contenido lokal auf einem WAMP/LAMP laufen... da habe ich es nicht getestet. Das Problem mit der fehlenden Ordnerauswahl ist bisher auch bei der ModRewrite-Version aufgetaucht... Kann Dir da leider nicht helfen