Bilder uploaden
Hallo Zusammen,
folgende Fehlermeldung erhalte ich wenn ich das Formular für den
Dateiupload aus dem PHP-Manual unter http://bm.it-
openproject.de/mytest/myupload.php aufrufe:
Warning: move_uploaded_file(http://bm.it-
openproject.de/mytest/brandenburg.gif) [function.move-uploaded-file]:
failed to open stream: HTTP wrapper does not support writeable
connections. in /www/htdocs/bmklaus/mytest/myupload.php on line 22
Mein Quellcode:
<form enctype="multipart/form-data" action="<?php echo $_SERVER
['PHP_SELF']; ?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
$uploaddir = 'http://bm.it-openproject.de/mytest/';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .
$_FILES['userfile']['name'])) {...
Für jeden Tip bin ich sehr dankbar.
Grüsse Alexander zu Solms
Re: Bilder uploaden
Alexander zu Solms schrieb:
> $uploaddir = 'http://bm.it-openproject.de/mytest/';
>
> if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .
> $_FILES['userfile']['name'])) {...
>
> Für jeden Tip bin ich sehr dankbar.
Als "$uploaddir" darfst du keine HTTP-URI angeben, sondern du musst einen
lokalen Dateisystempfad nehmen.
Gruß
Carsten
Re: Bilder uploaden
Alexander zu Solms wrote:
> $uploaddir = 'http://bm.it-openproject.de/mytest/';
Stell Dir doch einfach mal vor sowas würde gehen. Die Konsequenzen wären
fatal. Jeder könnte bei anderen, beliebige Dateien auf den Webspace laden.
MfG, Ulf
Re: Bilder uploaden
Ulf Kadner schrieb:
> Alexander zu Solms wrote:
>
> > $uploaddir = 'http://bm.it-openproject.de/mytest/';
>
> Stell Dir doch einfach mal vor sowas würde gehen. Die Konsequenzen
> wären fatal. Jeder könnte bei anderen, beliebige Dateien auf den
> Webspace laden.
>
> MfG, Ulf
vielen Dank. Ihr habt natürlich Recht
Grüsse Alex
Re: Bilder uploaden
Alexander zu Solms schrieb:
> Ulf Kadner schrieb:
>
>> Alexander zu Solms wrote:
>>
>>> $uploaddir = 'http://bm.it-openproject.de/mytest/';
>> Stell Dir doch einfach mal vor sowas würde gehen. Die Konsequenzen
>> wären fatal. Jeder könnte bei anderen, beliebige Dateien auf den
>> Webspace laden.
>>
>> MfG, Ulf
> vielen Dank. Ihr habt natürlich Recht
> Grüsse Alex
Denk dran das in dem Code welchen du uebernommen hast dem Client
untersagt wird Dateien groesser 30.000 Bytes zusenden.
Also nicht wundern wenn bei groesseren Bildern nix ankommt.
Du solltest $_FILES['userfile']['error'] auswerten bevor du gedenkst was
zu verschieben. Des Weiteren solltest du einen eigenen Namen fuer die
Datei festlegen oder zumind. sicherstellen das dir keiner ein boese.php
unterschieben kann und dann dieses ueber deinen Webserver spaeter
ausfuehrt.
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Bilder uploaden
Am Sat, 28 Jul 2007 10:20:00 +0000 (UTC) schrieb Alexander zu Solms:
Frage am Rande:
> <input type="hidden" name="MAX_FILE_SIZE" value="30000">
Warum gibst Du so eine wichtige Konstante über ein _manipulierbares_
POST-Feld mit? Das heißt, wer MAX_FILE_SIZE auf 300000000 setzt, kann in
einem Rutsch Deinen gesamten Webspace platt machen.
Manipulative Post-Requests laufen nie über das Formular, das Du anbietest.
Martin
Re: Bilder uploaden
Am Sat, 28 Jul 2007 13:19:46 +0200 schrieb Joerg Behrens:
> sicherstellen das dir keiner ein boese.php
> unterschieben kann
Wenn man bedenket, in wievielen Galerien man cwings.php findet. Mir ist der
Fehler auch mal unterlaufen und dank cwings.php konnte jeder, der es
versuchte, meine gesamten Systemdaten lesen. Das war mir eine Lehre!
Auch wenn es lästig erscheint, Sicherheit muss groß geschrieben werden.
Martin
Re: Bilder uploaden
Martin Lemke wrote:
> Am Sat, 28 Jul 2007 10:20:00 +0000 (UTC) schrieb Alexander zu Solms:
>> <input type="hidden" name="MAX_FILE_SIZE" value="30000">
>
> Warum gibst Du so eine wichtige Konstante über ein _manipulierbares_
> POST-Feld mit? Das heißt, wer MAX_FILE_SIZE auf 300000000 setzt, kann in
> einem Rutsch Deinen gesamten Webspace platt machen.
Ich glaub Du hast das was mißverstanden. Was im Endeffekt hochgeladen
werden darf wird ausschließlich von PHPs dafuer vorgesehenen
Konfigurationsdirketiven bestimmt. Ob da MAX_FILE_SIZE angegeben ist
spielt erst mal keine Rolle. Es wird genutzt wenn es angegeben ist aber
bietet keine Möglichkeit das durch PHP gesetzte Limit zu aendern. (Wär
ja auch noch schöner ;-))
Wenn PHP auf der Gegenseite allerdings solch große downloads zuläst hat
der OP ein ganz anderes Problem.
> Manipulative Post-Requests laufen nie über das Formular, das Du anbietest.
Und können diesbezüglich auch nix böses tun. (Vorrausgesetzt PHP ist
vernünftig konfiguriert)
MfG, Ulf
Re: Bilder uploaden
Am Tue, 31 Jul 2007 10:31:25 +0200 schrieb Ulf Kadner:
> Es wird genutzt wenn es angegeben ist aber
> bietet keine Möglichkeit das durch PHP gesetzte Limit zu aendern.
Ich ging davon aus, dass der Wert skriptseitig irgendwie in dieser Richtung
verwendet wird. Welchen Sinn hätte der denn ansonsten?
Martin
Re: Bilder uploaden
Martin Lemke schrieb:
> Am Tue, 31 Jul 2007 10:31:25 +0200 schrieb Ulf Kadner:
>
>> Es wird genutzt wenn es angegeben ist aber
>> bietet keine Möglichkeit das durch PHP gesetzte Limit zu aendern.
>
> Ich ging davon aus, dass der Wert skriptseitig irgendwie in dieser Richtung
> verwendet wird. Welchen Sinn hätte der denn ansonsten?
Das habe ich mich auch immer mal wieder gefragt. Wirklich sinnvoll
fände ich die Angabe als Info für den Client (Browser), damit dieser
vor dem Upload entscheiden kann, ob die die Datei(en) abschickt.
War das vielleicht sogar mal so gedacht?
Gruß
JPM
Re: Bilder uploaden
Am Tue, 31 Jul 2007 14:42:39 +0200 schrieb Jens Peter Moeller:
> Das habe ich mich auch immer mal wieder gefragt.
Das klingt, als sei die Übergabe dieses Parameters Usus. Das deckt sich
allerdings nicht mit meinen Kenntnissen. Ich habe einen solchen Parameter
nie verwendet.
Martin
Re: Bilder uploaden
Jens Peter Moeller schrieb:
> Martin Lemke schrieb:
>> Am Tue, 31 Jul 2007 10:31:25 +0200 schrieb Ulf Kadner:
>>
>>> Es wird genutzt wenn es angegeben ist aber
>>> bietet keine Möglichkeit das durch PHP gesetzte Limit zu aendern.
>> Ich ging davon aus, dass der Wert skriptseitig irgendwie in dieser Richtung
>> verwendet wird. Welchen Sinn hätte der denn ansonsten?
>
> Das habe ich mich auch immer mal wieder gefragt. Wirklich sinnvoll
> fände ich die Angabe als Info für den Client (Browser), damit dieser
> vor dem Upload entscheiden kann, ob die die Datei(en) abschickt.
> War das vielleicht sogar mal so gedacht?
Ja das war es und ist es heute noch. Ist doch auch sinnvoll dem Client
vorher mitzuteilen wieviel der Server akzeptiert.
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Bilder uploaden
Martin Lemke schrieb:
>Am Tue, 31 Jul 2007 10:31:25 +0200 schrieb Ulf Kadner:
>
>> Es wird genutzt wenn es angegeben ist aber
>> bietet keine Möglichkeit das durch PHP gesetzte Limit zu aendern.
>
>Ich ging davon aus, dass der Wert skriptseitig irgendwie in dieser Richtung
>verwendet wird. Welchen Sinn hätte der denn ansonsten?
Tatsächlich würde es Sinn machen, aber es handelt sich hier wohl um ein
(nicht besonders sinnvolles) Feature aus PHP-3-Zeiten.
Die "Browserunterstützung" ist eine UL:
http://forum.de.selfhtml.org/archiv/2007/4/t150983/#m982286
--
Wolfgang Fellger
Re: Bilder uploaden
Wolfgang Fellger schrieb:
[MAX_FILE_SIZE-hidden-Feld]
> Tatsächlich würde es Sinn machen, aber es handelt sich hier wohl um ein
> (nicht besonders sinnvolles) Feature aus PHP-3-Zeiten.
> Die "Browserunterstützung" ist eine UL:
> http://forum.de.selfhtml.org/archiv/2007/4/t150983/#m982286
LoL. Interessanter Thead. Das klärt vieles auf, wenn auch nicht
unbedingt befriedigend.
Gruß
JPM
Re: Bilder uploaden
Wolfgang Fellger wrote:
> Tatsächlich würde es Sinn machen, aber es handelt sich hier wohl um ein
> (nicht besonders sinnvolles) Feature aus PHP-3-Zeiten.
Also ich habs gerad mal mit aktuellen PHP 5.2.3 getestet. Funktioniert
auf linuxserver sowie Win32. So wies tut hatte ich es auch erwartet.
Allerdings muß ich sagen das dies offensichtlich erst seit kurzen der
Fall ist und ich das "Feature" noch nie genutzt hab. Da hab ich einfach
geglaubt was dazu im Manual steht.
> Die "Browserunterstützung" ist eine UL:
> http://forum.de.selfhtml.org/archiv/2007/4/t150983/#m982286
Da wird auch die seit diesem Jahr etwas bereinigte PHP-Verhaltensweise
diesbezüglich per Link angesprochen.
Ob das sinnfrei ist oder nicht wollte ich nicht ausdrücken.
MfG, Ulf
Re: Bilder uploaden
Am Tue, 31 Jul 2007 18:19:50 +0200 schrieb Ulf Kadner:
> Also ich habs gerad mal mit aktuellen PHP 5.2.3 getestet. Funktioniert
> auf linuxserver sowie Win32. So wies tut hatte ich es auch erwartet.
Ich habe nicht verstanden, was dieser Parameter bewirkt. Könntest Du das
konkretisieren?
Martin