Upload problem!
SilverShaddow
- php
also...
Ich hab mir nach ner anleitung ein html upload gebaut.
Das ganze sollte eigentlich ein bild hochladen auf meinen ftp und das anschliesend verschieben...(damit es ned gelöscht wird)
hier is einmal die index.html (Enthält das form)
---------
Index.php
---------
<html>
<head>
</head>
<body>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="4000000" />
Datei:<input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>
und hier die uploader.php
---------
uploader.php
---------
<?php
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
Wenn ich das dann im browser versuche kommt die meldung:
--------
Warning: move_uploaded_file(uploads/6-b97f07773bfaaf16-m.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /usr/export/www/hosting/faintftp/Neuer uppper/uploader.php on line 7
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/usr/export/tmp/phpt6d4Ad' to 'uploads/6-b97f07773bfaaf16-m.jpg' in /usr/export/www/hosting/faintftp/Neuer uppper/uploader.php on line 7
There was an error uploading the file, please try again!
--------
Was soll das heisen?
Ich evrstehs nich? bin noch anfänger...
(achja...wie bestimm ich, wohin die datei verschoben wird?)
<input type="hidden" name="MAX_FILE_SIZE" value="4000000" />
diese zeile kommt mir verdächtig bekannt vor, kanns sein, dass es da schon einen beitrag dazu gibt?
ich dachte mir beim letzten mal schon "wer macht sowas?" ;)
<input type="hidden" name="MAX_FILE_SIZE" value="4000000" />
diese zeile kommt mir verdächtig bekannt vor, kanns sein, dass es da schon einen beitrag dazu gibt?
ich dachte mir beim letzten mal schon "wer macht sowas?" ;)
also ich hab schonmal was öhnliches gefragt vor ein paar tagen,
aber da war ich noch am null punkt, also hab ich kein code oder so gepostet...
ist an der zeile was falsch?
<input type="hidden" name="MAX_FILE_SIZE" value="4000000" />
ist an der zeile was falsch?
nein, ansich nicht - aber genau das selbeh hab ich eben schon vor ein paar tagen gelesen - üblicherweise gehe ich nicht davon aus, dass 4 millionen bytes 4 mb entsprechen - ich hätte 4194304 (= 2^20 x 4) geschrieben ;)
<input type="hidden" name="MAX_FILE_SIZE" value="4000000" />
ist an der zeile was falsch?nein, ansich nicht - aber genau das selbeh hab ich eben schon vor ein paar tagen gelesen - üblicherweise gehe ich nicht davon aus, dass 4 millionen bytes 4 mb entsprechen - ich hätte 4194304 (= 2^20 x 4) geschrieben ;)
hm...muss ja nich genau 4 mb sein...mir wärs auch egal wärns 5 oder 3 ;)
also weist du nich warum die fehlermeldung kommt?
echo $begrüßung;
<input type="hidden" name="MAX_FILE_SIZE" value="4000000" />
diese zeile kommt mir verdächtig bekannt vor, kanns sein, dass es da schon einen beitrag dazu gibt?
ich dachte mir beim letzten mal schon "wer macht sowas?" ;)
Das ist ein recht unsinniges PHP-Feature. Es verhindert keinen Upload, der diese Grenze überschreitet. Es verhindert nur ein Weiterverarbeiten. Und das kann man auch serverseitig konfigurieren, ohne dass es der Client zu seinen Gunsten fälschen kann.
Siehe PHP-Handbuch - Handling file uploads
echo "$verabschiedung $name";
Das ist ein recht unsinniges PHP-Feature. Es verhindert keinen Upload, der diese Grenze überschreitet. Es verhindert nur ein Weiterverarbeiten. Und das kann man auch serverseitig konfigurieren, ohne dass es der Client zu seinen Gunsten fälschen kann.
siehe auch hier:
http://at2.php.net/manual/de/features.file-upload.php
im roten kasten
"Sie sollten aber MAX_FILE_SIZE trotzdem nutzen da es Nutzer davor bewahrt zunächst auf die Übertragung der Daten zu warten um dann erst herauszufinden das diese zu groß waren."
echo $begrüßung;
"Sie sollten aber MAX_FILE_SIZE trotzdem nutzen da es Nutzer davor bewahrt zunächst auf die Übertragung der Daten zu warten um dann erst herauszufinden das diese zu groß waren."
Und welcher Browser hält sich an dieses von PHP erfundene Feature? Oder auch anders gefragt: Wo ist das standardisiert?
echo "$verabschiedung $name";
Und welcher Browser hält sich an dieses von PHP erfundene Feature? Oder auch anders gefragt: Wo ist das standardisiert?
wie schon erwähnt, ich bin prinzipiell auch der ansicht, dass dieses feature etwas unsinnig ist ;)
Hello,
$target_path = "uploads/";
if (isset($_FILES['uploadedfile']['error']) and $_FILES['uploadedfile']['error'] === 0)
{
# weitermachen
}
else
{
# Fehlerbehandlung
}
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}?>
Wenn ich das dann im browser versuche kommt die meldung:
Warning: move_uploaded_file(uploads/6-b97f07773bfaaf16-m.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /usr/export/www/hosting/faintftp/Neuer uppper/uploader.php on line 7
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/usr/export/tmp/phpt6d4Ad' to 'uploads/6-b97f07773bfaaf16-m.jpg' in /usr/export/www/hosting/faintftp/Neuer uppper/uploader.php on line 7
There was an error uploading the file, please try again!
Du weißt, dass Du Dir da eine riesige Sicherheitslücke baust, wenn das Zielverzeichnis per HTTP erreichbar ist, und die angefragten Files dann vielleicht sogar noch von PHP geparst werden und Du den Filetype nicht prüfst? Mit einem passenden PHP-File könnte das Ende Deines Servers sein oder ihn zur Spamschleuder oder zum Pornoladen machen.
Ein harzliches Glückauf
Tom vom Berg