Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4550
| From | k@rl.pflaesterer.de (Karl Pflästerer) |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: php Upload-Skript |
| Date | 2019-11-16 16:36 +0100 |
| Message-ID | <m136enkf4h.fsf@mbp.pflaesterer.de> (permalink) |
| References | <qqp1bv$1kf$1@solani.org> |
Detlef Paschke <schabau@t-online.de> writes:
> Hallo an alle,
[...]
> Nun wollte ich gern noch auf die Dateiendung überprüfen und habe mir
> diese Zeilen gesucht.
> Im Header steht:
> # Geben Sie hier die erlaubten Dateitypen an ('zip', 'gzip').
> $extension = strtolower(pathinfo($_FILES['datei']['name'],
> PATHINFO_EXTENSION));
> $allowed_extensions = array('png', 'jpg', 'jpeg', 'gif', 'pdf');
>
> Und dann unten im Formular:
> if(!in_array($extension, $allowed_extensions)) {
> echo "Ungültige Dateiendung";
> exit;
>
> Das funktioniert, nur wenn ich die Upload-Seite betrete, sprich keine
> Datei ausgewählt habe erscheint diese Meldung wenn ich in php
> eingestellt habe, dass Fehlermeldungen angezeigt werden sollen:
>
> Notice: Undefined index: datei in
> /var/www/htdocs/schabau.goip.de/upload/upload.php on line 13.
> Zeile 13 ist dabei die Zeile die mit "$extension = strtolower" beginnt.
Da du noch nichts hocgealden hast, ist $_FILES leer. Daher die Notice
Lasse den ganzen Block nur ausführen, wenn etwas hochgeladen wurde.
Also zB
if (!empty($_FILES['datei'])) {
... dein Code
}
>
> Tja und die zweite Sache wird sicher auch nur ein Syntaxproblem sein.
> Auf der Webseite wird derzeit automatisch angezeigt, wie groß eine Datei
> sein darf.
>
> $int_max_filesize = 524288000;
>
> im Header und
>
> <p align="center"><u>Maximale Dateigröße <?php echo round
> ($int_max_filesize/1024/1024, 2)?></u></p>
>
> dann im html-Bereich.
>
> Nun hätte ich gern noch eine Zeile direkt darunter, in der die Erlaubten
> Dateiendungen aus
>
> $allowed_extensions = Array('png', 'jpg', 'jpeg', 'gif', 'pdf');
>
> aufgeführt werden. Ein schlichtes echo ($allowed_extensions) geht
> zumindest nicht aber sicher ist es auch nur wieder ein Syntax-Problem.
Da $allowed_extensions ein Array ist, musst du daraus eine Zeichenkette
machen, wenn du es ausgeben willst.
Zum Beispiel
echo htmlspecialchars(implode(',', $allowed_extensions));
Wenn du nicht weisst, was alles in $allowed_extensions stehen kann,
sichert htmlspecialchars, dass du gültiges html hast
KP
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-16 15:33 +0100
Re: php Upload-Skript k@rl.pflaesterer.de (Karl Pflästerer) - 2019-11-16 16:36 +0100
Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-17 11:30 +0100
Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-17 11:45 +0100
Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-17 13:31 +0100
Re: php Upload-Skript Jan Novak <repcom@gmail.com> - 2019-11-18 15:58 +0100
Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-19 14:54 +0100
csiph-web