Uploadverzeichnisse
Uploadverzeichnisse
Gibt es eine Möglichkeit, die Grössen der Uploadverzeichnisse zu beschränken?
Günter
Günter
nicht so ohne weiteres... du müsstest die Größeninformation beim Upload bereits irgendwo zwischenspeichern um später rauszubekommen, wieviel bisher in dem Verzeichnis liegt. Also ein zusätzlicher Table in con_upl z.b.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
die größe von verzeichnissen, bzw. webspace kann man mit dem (auf einigen servern installiertem) Tool "quota" erledigen.
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
stimmt... quota setzen oder - wenn vorhanden - kannst du mit dem Tool "du -m" jederzeit die Größe eines Verzeichnisses in Megabyte ausgeben lassen. Das Ergebnis parsen und vergleichen. Aber beide Tools kannst du meist nur als Root einsetzen und beide gehören zu Linux/Unix
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
... "du -m" oder "quota" kann ich nicht einsetzen, muss mal meinen Hoster fragen, ob er mal die Verzeichnisse damit einstellt.
Ich denke aber, dass die Lösung von Sven777b vielleicht für die Zukunft besser ist, mit php/contendio das Uploaden zu regeln. Ich bin schon auf einige Php - Fragmente in anderen Foren gestossen, die php-uploads machen. Vielleicht klappts damit , wenn ich diese in contenido einbaue und anpasse.
Mal sehen, wenn´s geht melde ich mich wieder.
Günter.
Ich denke aber, dass die Lösung von Sven777b vielleicht für die Zukunft besser ist, mit php/contendio das Uploaden zu regeln. Ich bin schon auf einige Php - Fragmente in anderen Foren gestossen, die php-uploads machen. Vielleicht klappts damit , wenn ich diese in contenido einbaue und anpasse.
Mal sehen, wenn´s geht melde ich mich wieder.
Günter.
So geht es... :
ich habe die erstere Lösung von mir mal umgesetzt und sie funktioniert auch. Allerdings musst du dazu eine Datei editieren.
die Datei /contenido/inc/upl_upload_form.inc.php wird komplett ersetzt damit:
Anschliessend per phpMyAdmin folgenden SQL-Dump einspielen:
ab sofort wird die Dateigröße in der Datenbank mitgeführt. In der config.php kannst du mit folgender Zeile die jeweiligen Maximumwerte festlegen:
du kannst also den Wert für jedes Uploadverzeichnis von jedem Client festlegen (für pdf also ["pdf"] ).
Der Maximalwert wird in Megabyte angegeben. 0 = unlimitiert.
Bei Überschreitung des Maximum wird die Datei nicht kopiert und auch nicht eingetragen - es erscheint eine Warnung.
ich habe die erstere Lösung von mir mal umgesetzt und sie funktioniert auch. Allerdings musst du dazu eine Datei editieren.
die Datei /contenido/inc/upl_upload_form.inc.php wird komplett ersetzt damit:
Code: Alles auswählen
<?
//********** Fileupload with form *******
echo " <form name=upload action=\"$formaction\" method=post enctype=\"multipart/form-data\">";
$sess->hidden_session();
echo " <INPUT type=hidden name=upltype VALUE=\"$upltype\">";
echo " <TABLE cellpadding=$cellpadding cellspacing=$cellspacing border=$border>
<TR><TD class=head colspan=3 width=600>$text</TD></TR>
<TR><TD class=head>".$lngUpl["file"]."</TD><TD colspan=2 class=content>";
echo " <INPUT type=file size=50 maxlength=100000 name=\"userfile\" accept=\"*\">";
echo " </TD></TR><TR><TD class=head>".$lngUpl["description"]."</TD><TD class=content>";
echo " <INPUT type=text name=description VALUE=\"\" SIZE=50>";
echo " <INPUT type=hidden name=uplfiletype VALUE=\"".$cfgClient[$client]["filetype"]["$upltype"]."\">";
echo " </TD><TD class=content>";
echo " <INPUT type=image src=\"".$cfgPathImg."but_ok.gif\" border=0>";
echo " </TD></TR></TABLE>";
echo " </form>";
$userfile_name = $HTTP_POST_FILES['userfile']['name'];
$source = $HTTP_POST_FILES['userfile']['tmp_name'];
$target = "$path". $userfile_name;
$size = $HTTP_POST_FILES['userfile']['size'];
$dirsize = $size;
if($cfgClient[$client]['maxsize'][$upltype] > 0){
$db->query("SELECT size FROM $cfgTab_upl WHERE idclient='$client' AND dirname='$upltype'");
while( $db->next_record() ){ $dirsize += $db->f("size"); }
}
if ($source != "none" AND $source != "") {
if ( $dirsize > ($cfgClient[$client]['maxsize'][$upltype] * 1048576) ) {
echo "Uploadmaximum von ".$cfgClient[$client]['maxsize'][$upltype]." Mb erreicht<BR>\n";
unlink($source);
} elseif ( !copy($source, $target) ) {
echo("failed to copy \"$source\" nach \"$target\"<br>\n");
} else {
$sql = "SELECT idupl FROM $cfgTab_upl WHERE idclient='$client' AND filename='$userfile_name' AND dirname='$upltype' AND filetype='".$cfgClient[$client]["filetype"]["$upltype"]."'";
$db->query($sql);
if ($db->next_record()) {
$sql = "UPDATE $cfgTab_upl SET idclient='$client', filename='$userfile_name', dirname='$upltype', filetype='".$cfgClient[$client]["filetype"]["$upltype"]."', description='$description', size='$size' WHERE idupl='".$db->f("idupl")."'";
$db->query($sql);
} else {
$sql = "INSERT INTO $cfgTab_upl (idclient, filename, dirname, filetype, description, size) VALUES ('$client','$userfile_name','$upltype','".$cfgClient[$client]["filetype"]["$upltype"]."','$description','$size')";
$db->query($sql);
}
}
}
?>
Code: Alles auswählen
ALTER TABLE `con_upl` ADD `size` INT UNSIGNEDDEFAULT '0' NOT NULL ;
Code: Alles auswählen
$cfgClient[1]["maxsize"]["img"] = 10;
Der Maximalwert wird in Megabyte angegeben. 0 = unlimitiert.
Bei Überschreitung des Maximum wird die Datei nicht kopiert und auch nicht eingetragen - es erscheint eine Warnung.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
@ Contenido - Entwickler für Version 4.4 o.ä.
Das halte ich für ein sinnvolles Regulierungswerkzeug.
Zusätzlich zum Gesamtgröße der directorys sollte man vielleicht noch andenken, die filesize der einzelnen upload-Dateien beschränken zu können, damit nicht Riesenbilddateien von unbedarften Redaktueren im Internetauftritt auftauchen.
Gruß
Detlev
Das halte ich für ein sinnvolles Regulierungswerkzeug.
Zusätzlich zum Gesamtgröße der directorys sollte man vielleicht noch andenken, die filesize der einzelnen upload-Dateien beschränken zu können, damit nicht Riesenbilddateien von unbedarften Redaktueren im Internetauftritt auftauchen.
Gruß
Detlev
@detlev
wenn ich nicht komplett vertrottelt bin ist das bereits drinne:
wenn ich nicht komplett vertrottelt bin ist das bereits drinne:
das sollte eine erlaubte Größe von 100 kb darstellen!!!echo " <INPUT type=file size=50 maxlength=100000 name=\"userfile\" accept=\"*\">";
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
@idea-tec:
vertrottelt bist du nicht... aber die Eigenschaft maxlength wurde nicht ins neue HtmL übernommen. Will sagen - ältere Browser akzeptieren diese Eigenschaft - neuere hingegen nicht. Um den Upload zu testen habe ich gestern jeweils 500kb-Dateien hochgeladen. Der IE hat keinen Fehler gemeldet. Opera dagegen meldet IMHO das die Datei größer als 100kb ist.
vertrottelt bist du nicht... aber die Eigenschaft maxlength wurde nicht ins neue HtmL übernommen. Will sagen - ältere Browser akzeptieren diese Eigenschaft - neuere hingegen nicht. Um den Upload zu testen habe ich gestern jeweils 500kb-Dateien hochgeladen. Der IE hat keinen Fehler gemeldet. Opera dagegen meldet IMHO das die Datei größer als 100kb ist.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
Super, es klappt
Ich hab erst Heute Zeit zum Testen . Danke Sven !
Eines, möchte ich noch schnell schreiben, und zwar muss es beim Einfügen der Tabelle so heissen (ein Leerzeichen vor DEFAULT)
Es stimmt, was Sven schreibt, dass es bei einigen Browsern teilweise mit uploads noch klemmt.
Ein paar Links dazu hab ich schon mal durchgelesen, die über die beiden
Phpfunktionen is_uploaded_file() und move_uploaded_file() handeln.
http://www.php-center.de/de-html-manual ... pload.html und
http://www.dclp-faq.de/q/q-formular-upload-php4.html oder
http://www.dclp-faq.de/q/q-formular-meh ... pload.html

Ich hab erst Heute Zeit zum Testen . Danke Sven !
Eines, möchte ich noch schnell schreiben, und zwar muss es beim Einfügen der Tabelle so heissen (ein Leerzeichen vor DEFAULT)
Code: Alles auswählen
ALTER TABLE `con_upl` ADD `size` INT UNSIGNED DEFAULT '0' NOT NULL ;
Ein paar Links dazu hab ich schon mal durchgelesen, die über die beiden
Phpfunktionen is_uploaded_file() und move_uploaded_file() handeln.
http://www.php-center.de/de-html-manual ... pload.html und
http://www.dclp-faq.de/q/q-formular-upload-php4.html oder
http://www.dclp-faq.de/q/q-formular-meh ... pload.html
in der nächsten Version wird es die Möglichkeit geben, Den Uploadbereich zu beschränken und die maximale Größe der einzelnen Dateien zu definieren. Die Beschränkung einzelner Verzeichnisse werde ich nicht einbauen.
Ein neues CMS-System:
www.der-dirigent.de
www.der-dirigent.de