Datei Upload
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
bild
code
datei
endung
extension
fehler
file
foto
http
image
liste
machen
meldung
mime
page
richtige format
testen
url
ziel
-
Hallo Zusammen ich hab mal nen kleines Datei Upload Script gebastelt.
Es dient dazu den Usern auf meine Seite die möglichkeit zu bieten Banners hochzuladen.
Doch leider klappt es alles i.wie net :/ Ich Bekomme keine Fehlermeldung noch läd er die datei hoch.
if (isset($_FILES["datei"]) AND ! $_FILES["datei"]["error"] AND ($_FILES["datei"]["size"] < 256 )) { $bildinfo = getimagesize($_FILES["datei"]["tmp_name"]); if ($bildinfo === false) { die("kein Bild"); } else { $mime = $bildinfo["mime"]; $mimetypen = array ( "image/jpeg" => "jpg", "image/gif" => "gif", "image/png" => "png" ); if (!isset($mimetypen[$mime])) { die("Nicht das richtige Format"); } else { $endung = $mimetypen[$mime]; } $neuername = basename($_FILES["datei"]["name"]); $neuername = preg_replace("/\.(jpe?g|gif|png)$/i", "", $neuername); $neuername = preg_replace("/[^a-zA-Z0-9_-]/", "", $neuername); $neuername .= ".$endung"; $ziel = "./upload/$neuername"; while (file_exists($ziel)) { $neuername = "kopie_$neuername"; $ziel = "upload/$neuername"; } if (@move_uploaded_file($_FILES["datei"]["tmp_name"], $ziel)) { echo "Wunderbar"; } else { echo "Fehler"; } } }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
einfach mal error_reporting(E_ALL); an den Anfang setzen und gucken ob es dann fehlermeldungen gibt.
-
nichts gibt er aus ;D
-
bist du sicher, dass die datei nicht zu groß ist, dein code macht ja nichts, wenn die datei zu groß ist
-
czibere schrieb:
shuyio1985 schrieb:
ja! klar! dass es geht, macht man genau das. und bitte von da ganz durchlesen. tastenkombinationen &c. könnten auch dabei behilflich sein ;)
nichts gibt er aus ;D
und hiezu hast du ja ein pn von mir (wolltest ja haben!)
So hier dein Script =)
<?php ini_set('display_errors', '1'); error_reporting(E_ALL | E_STRICT); $xsize = 28000; // echo <<< EOT <form action="" method="post" enctype="multipart/form-data"> Datei: <input type="file" name="image"><br /> <input type="submit" name="cupload" value="upload"> <!-- input type="hidden" name="MAX_FILE_SIZE" value="$xsize" --> </form>' . PHP_EOL EOT; echo "<pre>".print_r($_FILES,true)."</pre>"; if(($_FILES['image']['error'] === 0) AND ($_FILES['image']['size'] < $xsize)) { echo "<h1>HERE</h1>"; $bildinfo = getimagesize($_FILES['image']['tmp_name']); if($bildinfo === false) { die("kein Bild"); } else { $mime = $bildinfo['mime']; $mimetypen = array ( "image/jpeg" => "jpg", "image/gif" => "gif", "image/png" => "png" ); if(!isset($mimetypen[$mime])) { die("Nicht das richtige Format"); } else { $endung = $mimetypen[$mime]; } $neuername = basename($_FILES['image']['name']); $neuername = preg_replace("/\.(jpe?g|gif|png)$/i", "", $neuername); $neuername = preg_replace("/[^a-zA-Z0-9_-]/", "", $neuername); $neuername .= ".$endung"; #exit(''.$neuername); $ziel = "upload/$neuername"; while(file_exists($ziel)) { $neuername = "kopie_$neuername"; $ziel = "upload/$neuername"; } if(move_uploaded_file($_FILES['image']['tmp_name'], $ziel)) { echo "Wunderbar"; } else { echo "Fehler"; } } } else { $emsg = array( 'There is no error, the file uploaded with success.', 'The uploaded file exceeds the upload_max_filesize directive in php.ini.', 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.', 'The uploaded file was only partially uploaded.', 'No file was uploaded.', '', 'Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.', 'Failed to write file to disk. Introduced in PHP 5.1.0.', 'A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.' ); echo "<p><strong>{$emsg[$_FILES['image']['error']]}</strong></p>"; } ?>
Es Funktioniert auch net :/ die Datei wird nicht hochgeladen und es kommen auch KEINE Fehler
hier der link zum testen : http://babbelfish.eu/upload.php
Beitrag zuletzt geändert: 17.8.2013 19:06:25 von shuyio1985 -
shuyio1985 schrieb:
gibts ned!
... Es Funktioniert auch net :/ die Datei wird nicht hochgeladen und es kommen auch KEINE Fehler
hier der link zum testen : http://babbelfish.eu/upload.php
ich habe bei dir ein bild 'fish.gif' aufgeladen. teste mal bitte. (beweismittel:http://czibere.lima-city.de/_forum/shuyio1985/babbelfish_eu.png)
außerdem habe ich dir im pn darauf higewiesen, dass das script wohl irgendwelche meldungen von sich geben kann (so wie: ' . PHP_EOL [flüchtigkeitfehler]) die aber die funktionalität nicht betrefen ;)
nichts desto trotz, hier ein 'update':<?php /** * czibere.lima-city.de/_forum/shuyio1985/upload.php */ ini_set('display_errors', '1'); error_reporting(E_ALL | E_STRICT); $xsize = 28000; // maximale bilddateigröße in bites $eol = PHP_EOL; echo <<< EOT <form action="" method="post" enctype="multipart/form-data"> Datei: <input type="file" name="image"><br /> <input type="submit" name="cupload" value="upload"> <!-- input type="hidden" name="MAX_FILE_SIZE" value="$xsize" --> </form>$eol$eol EOT; echo "<h3>\$_FILES:</h3><pre>".print_r($_FILES,true)."</pre>"; if(isset($_FILES['image']) AND ($_FILES['image']['error'] === 0) AND ($_FILES['image']['size'] < $xsize)) { #echo "<h1>HERE</h1>"; $bildinfo = getimagesize($_FILES['image']['tmp_name']); if($bildinfo === false) { die('kein Bild'); } else { $mime = $bildinfo['mime']; $mimetypen = array ( 'image/jpeg' => 'jpg', 'image/gif' => 'gif', 'image/png' => 'png' ); if(!isset($mimetypen[$mime])) { die('Nicht das richtige Format'); } else { $endung = $mimetypen[$mime]; } $neuername = basename($_FILES['image']['name']); $neuername = preg_replace("/\.(jpe?g|gif|png)$/i", "", $neuername); $neuername = preg_replace("/[^a-zA-Z0-9_-]/", "", $neuername); $neuername .= ".$endung"; #exit(''.$neuername); $ziel = "upload/$neuername"; while(file_exists($ziel)) { $neuername = "kopie_$neuername"; $ziel = "upload/$neuername"; } if(move_uploaded_file($_FILES['image']['tmp_name'], $ziel)) { echo 'Wunderbar'; } else { echo 'Fehler'; } } } else { $emsg = array( 'There is no error, the file uploaded with success.', 'The uploaded file exceeds the upload_max_filesize directive in php.ini.', 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.', 'The uploaded file was only partially uploaded.', 'No file was uploaded.', '', 'Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.', 'Failed to write file to disk. Introduced in PHP 5.1.0.', 'A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.' ); if(isset($_FILES['image'])) { echo "<hr /><h3>error message:</h3> <p><strong>{$emsg[$_FILES['image']['error']]}</strong></p>$eol$eol"; } } require_once './getDirTree.php'; $dir = print_r(getDirTree('./upload'),true); echo <<< EOT <hr /><h3>bilder im ordner './upload/':</h3> <p> <pre>$dir</pre> </p> EOT; $f = highlight_file(__FILE__,true); echo <<< EOT <hr /><h3>code</h3> <pre> $f </pre> EOT;
hier zum testen.
und weil das genau so ist, muss ich leider sagen, du hast genau das nicht nachgelesen ;) -
Okay okay :/ ich nehm es zurück es klappt doch wunderbar :/
nur was mich irritiert hat ist :
There is no error, the file uploaded with success
Diese meldung kam als ich ein Bild hochgeladen habe. anscheind war das bild aber zu groß oder was auch immer.
-
shuyio1985 schrieb:
das kann nicht stimmen! dann hättest du die meldung 'The uploaded file exceeds the upload_max_filesize directive in php.ini.' sehen müssen.
Okay okay :/ ich nehm es zurück es klappt doch wunderbar :/
nur was mich irritiert hat ist :
There is no error, the file uploaded with success
Diese meldung kam als ich ein Bild hochgeladen habe. anscheind war das bild aber zu groß oder was auch immer.
alle meldungen siehst du im letzten source von mir ab zeile 58. ja und bevor du das nächste mal in panik fällst, lese bitte den inhalt des bilschirmes ;))
ich möchte dich allerdings nochmals fragen (einmal habe ich schon) was bezwecks du mit den zeilen 41-44??
Beitrag zuletzt geändert: 17.8.2013 23:55:45 von czibere -
das ist wenn jemand das gleiche bild uploaded wie schon vorhanden ist.
Es sollte das bild umbennen
Ich kann dir nur sagen wie es war. ich habe wirklich diese meldung bekommen :/ und es wurde kein Bild hochgeladen
Beitrag zuletzt geändert: 18.8.2013 7:44:14 von shuyio1985 -
shuyio1985 schrieb:
ok! aus fish.gif wird dann kopie_fish.gif, kopie_kopie_fish.gif &c. nach meiner erfahrung sowas erschwert das suchen. ich würde so umbenenne: fish.gif -> fish_x.gif (wobei x natürlich ein integer ist [einfach hochgezählt]). dann bleibt fish dort wo fish hingehört ;)
... Es sollte das bild umbennenIch kann dir nur sagen wie es war. ich habe wirklich diese meldung bekommen :/ und es wurde kein Bild hochgeladen
yo mey!!?? wunder an wunder ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage