php Uploadscript

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • php Uploadscript

    Hi Leute!
    Vorerst mal: Ich habe von php keine Ahnung (nur HTML), habe diesen Script nur kopiert und bisschen veraendert^^.
    Ich habe hier einen Uploadscript, aber er funktinoiert aus irgend einem Grund nicht.
    Wenn ich eine Datei angebe, dann auf "Hochladen" klicke, dann arbeitet zwar mein Browser, aber die Datei ist danach trotzdem nicht oben :/
    (Mein server unterstuetzt natuerlich php;))

    (Und wie kann ich auch eine Fortschrittsanzeige einblenden lassen?)

    Was kann da falsch sein? Kann mir wer helfen? Danke^^

    Quellcode

    1. <?php
    2. ini_set ('error_reporting', E_ALL);
    3. $pfad = 'upload/'; // Hier den Ordner relativ zum Uploadscrip, in die die Dateien hochgeladen werden angeben.
    4. $dateiupload_erfolgreich = false;
    5. function CheckFilename($dateiname,$pfad)
    6. {
    7. global $fehler; $fehler = array();
    8. if(!in_array(strtolower(substr($dateiname,-4)),array('.jpg','.jpeg','.png','.gif','.zip','.rar','.bmp','.exe','.txt','.doc','.mp3','.wma','.wav','.html','.htm','.mpg','.avi','.pdf','.wmv','.xls','.swf','.fla','.ppt','.mov'))) array_push($fehler, 'Falsches Dateiformat! Erlaubte Dateiformate: .jpg, .jpeg, .png, .gif, .zip, .rar, .bmp, .exe, .txt, .doc, .mp3, .wma, .wav, .html, .htm, .mpg, .avi, .pdf, .wmv, .xls, .swf, .fla, .ppt, .mov'); // In das array erlaubte Dateiformate eintragen und gegebenenfals die Fehlermeldung anpassen. Bitte diese Zeile aus Sicherheitsgründen auf gar keinen Fall löschen!
    9. return (sizeof($fehler)) ? false : $dateiname;
    10. }
    11. function CheckFile($dateiname_temp,$dateifehler,$dateigroesse)
    12. {
    13. global $fehler; $fehler = array();
    14. switch ($dateifehler) {
    15. case '1': $dateifehler_erklaerung ='Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.'; break;
    16. case '2': $dateifehler_erklaerung = 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.'; break;
    17. case '3': $dateifehler_erklaerung = 'Die Datei wurde nur teilweise hochgeladen.'; break;
    18. case '4': $dateifehler_erklaerung = 'Es wurde keine Datei hochgeladen.'; break;
    19. }
    20. if($dateifehler) array_push($fehler, $dateifehler_erklaerung);
    21. if ($dateigroesse < 1) array_push($fehler, 'Sie haben versucht keine oder eine lehre Datei hochzuladen.');
    22. return (sizeof($fehler)) ? false : $dateiname_temp;
    23. }
    24. if(!empty($_POST['Send']))
    25. {
    26. if ($dateiname_temp = CheckFile($_FILES['Datei']['tmp_name'],$_FILES['Datei']['error'],$_FILES['Datei']['size']))
    27. {
    28. if ($dateiname = CheckFilename($_FILES['Datei']['name'],$pfad))
    29. {
    30. move_uploaded_file($dateiname_temp, $pfad.$dateiname);
    31. if (filesize($pfad.$dateiname)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!');
    32. $dateiupload_erfolgreich = true;
    33. }
    34. else $fehlermeldungen_ausgeben = true;
    35. }
    36. else $fehlermeldungen_ausgeben = true;
    37. }
    38. ?>
    39. <html>
    40. <head>
    41. <title>Datei-Upload</title>
    42. </head>
    43. <body>
    44. <?php
    45. if ($dateiupload_erfolgreich)
    46. {
    47. ?>Ihre Datei (&quot;<?php echo $dateiname; ?>&quot;) wurde hochgeladen. Sie können nun weitere Dateien hochladen.<?php
    48. }
    49. elseif (!empty($fehler))
    50. {
    51. ?>
    52. <br>Es sind folgende Fehler aufgetreten:<br>
    53. <?php
    54. foreach ($fehler as $fehlermeldung) {
    55. echo $fehlermeldung.'<br>';
    56. }
    57. ?>Beseitigen sie wenn möglich den Fehler und versuchen sie es erneut.<?php
    58. }
    59. ?>
    60. <form action="upload.php" enctype="multipart/form-data" method="post">
    61. <input type="file" size="65" name="datei">
    62. <input type="submit" value="Hochladen">
    63. </form>
    64. </body>
    65. </html>
    Alles anzeigen
  • CHMOD...was is das? lol

    Also, ich habe es zuvor mit einem anderen Uploadscript versucht, der hat funktioniert, allerdings konnte man damit nur gif, png und jpeg -Dateien hochladen, was mir nicht recht war.

    (Wenn ich eine Datei ausgewählt habe und dann auf "Hochladen" klicke, dann arbeitet zuerst der Browser (wie lang hängt davon ab wie groß die Datei ist), dann verschwindet der Pfad zu der Datei die man hochladen will (in der Textbox), und danach passiert gar nix mehr, man sieht also nur die Ausgangsseite, ohne irgendeiner Fehlermeldung.

    Aber seht doch selbst: :)

    www.cyberwusl.de/upload.php


    PS:
    Achja, und wenn ich irgend etwas in das Textfeld eingebe (zB "shfoöshgjlh" lol) dann passiert das selbe, eine Fehlermeldung wird dennoch nicht ausgegeben.

    Man könnte das ganze so beschreiben:
    Private Sub btnHochladen.onClick()
    txtPfadfeld.text = " "
    End Sub

    (So in etwa, und natürlich dass der Browser vorher arbeitet^^ ;))
  • Re: php Uploadscript

    Das müsste funktionieren :D

    Quellcode

    1. <?php
    2. ini_set ('error_reporting', E_ALL);
    3. $pfad = 'upload/'; // Hier den Ordner relativ zum Uploadscrip, in die die Dateien hochgeladen werden angeben.
    4. $dateiupload_erfolgreich = false;
    5. function CheckFilename($dateiname,$pfad)
    6. {
    7. global $fehler; $fehler = array();
    8. if(!in_array(strtolower(substr($dateiname,-4)),array('.jpg','.jpeg','.png','.gif','.zip','.rar','.bmp','.exe','.txt','.doc','.mp3','.wma','.wav','.html','.htm','.mpg','.avi','.pdf','.wmv','.xls','.swf','.fla','.ppt','.mov'))) array_push($fehler, 'Falsches Dateiformat! Erlaubte Dateiformate: .jpg, .jpeg, .png, .gif, .zip, .rar, .bmp, .exe, .txt, .doc, .mp3, .wma, .wav, .html, .htm, .mpg, .avi, .pdf, .wmv, .xls, .swf, .fla, .ppt, .mov'); // In das array erlaubte Dateiformate eintragen und gegebenenfals die Fehlermeldung anpassen. Bitte diese Zeile aus Sicherheitsgründen auf gar keinen Fall löschen!
    9. return (sizeof($fehler)) ? false : $dateiname;
    10. }
    11. function CheckFile($dateiname_temp,$dateifehler,$dateigroesse)
    12. {
    13. global $fehler; $fehler = array();
    14. switch ($dateifehler) {
    15. case '1': $dateifehler_erklaerung ='Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.'; break;
    16. case '2': $dateifehler_erklaerung = 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.'; break;
    17. case '3': $dateifehler_erklaerung = 'Die Datei wurde nur teilweise hochgeladen.'; break;
    18. case '4': $dateifehler_erklaerung = 'Es wurde keine Datei hochgeladen.'; break;
    19. }
    20. if($dateifehler) array_push($fehler, $dateifehler_erklaerung);
    21. if ($dateigroesse < 1) array_push($fehler, 'Sie haben versucht keine oder eine lehre Datei hochzuladen.');
    22. return (sizeof($fehler)) ? false : $dateiname_temp;
    23. }
    24. if(!empty($_POST['Send']))
    25. {
    26. if ($dateiname_temp = CheckFile($_FILES['Datei']['tmp_name'],$_FILES['Datei']['error'],$_FILES['Datei']['size']))
    27. {
    28. if ($dateiname = CheckFilename($_FILES['Datei']['name'],$pfad))
    29. {
    30. move_uploaded_file($dateiname_temp, $pfad.$dateiname);
    31. if (filesize($pfad.$dateiname)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!');
    32. $dateiupload_erfolgreich = true;
    33. }
    34. else $fehlermeldungen_ausgeben = true;
    35. }
    36. else $fehlermeldungen_ausgeben = true;
    37. }
    38. //else{echo"Button wurde nicht bestätigt";}
    39. ?>
    40. <html>
    41. <head>
    42. <title>Datei-Upload</title>
    43. </head>
    44. <body>
    45. <?php
    46. if ($dateiupload_erfolgreich)
    47. {
    48. ?>Ihre Datei (&quot;<?php echo $dateiname; ?>&quot;) wurde hochgeladen. Sie können nun weitere Dateien hochladen.<?php
    49. }
    50. elseif (!empty($fehler))
    51. {
    52. ?>
    53. <br>Es sind folgende Fehler aufgetreten:<br>
    54. <?php
    55. foreach ($fehler as $fehlermeldung) {
    56. echo $fehlermeldung.'<br>';
    57. }
    58. ?>Beseitigen sie wenn möglich den Fehler und versuchen sie es erneut.<?php
    59. }
    60. ?>
    61. <form action="upload.php" enctype="multipart/form-data" method="post">
    62. <input type="file" size="65" name="datei">
    63. <input type="submit" value="Hochladen" name="Send">
    64. </form>
    65. </body>
    66. </html>
    Alles anzeigen
    ~|__/
    ..o.o &lt;------------------- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world Domination.
  • Achja.. du hast dem Button einen namen gegeben^^...
    also, ich habe den script hochgeladen...
    Diesmal passiert auch was andres..
    aber da kommt die Meldung:


    Notice: Undefined index: Datei in C:\Inetpub\vhosts\cyberwusl.de\httpdocs\upload.php on line 32

    Is also anscheinend irgend ein Fehler in Zeile 32... das wär diese Zeile:

    if ($dateiname_temp = CheckFile($_FILES['Datei']['tmp_name'],$_FILES['Datei']['error'],$_FILES['Datei']['size']))


    Danke und liebe Grüße,

    Alligator Jack
  • Datei ist unten klein geschrieben! xD
    Du solltest immer darauf achten wie du die Variablen benennst das ist PHP nämlich nicht egal ;)

    So müsste dat gehen :twisted:

    Quellcode

    1. <form action="upload.php" enctype="multipart/form-data" method="post">
    2. <input type="file" size="65" name="Datei">
    3. <input type="submit" value="Hochladen" name="Send">
    4. </form>


    DasBunny ^^
    ~|__/
    ..o.o &lt;------------------- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world Domination.
  • Jop danke es geht!! :DD

    Hab jetzt nur noch 2 kleine Probleme... dass ich eine Begrenzung habe...also dass ich nicht unendlich große dateien hochladen kann, weil sonst mein browser abbricht...

    Aber dagegen kann man ja nichts tun.


    Ein andres Problem wär..

    Ich habe einen Script der einen Fortschrittstatus anzeigt... kann man den mit dem Uploadscript irgendwie zusammenfügen..bzw ist das schwer?
    Ich weiss ja nicht wie ichs machen muss :S

    Danke nochmal für deine Hilfe!

    Alligator Jack
  • "Alligator Jack" schrieb:

    Jop danke es geht!! :DD

    Hab jetzt nur noch 2 kleine Probleme... dass ich eine Begrenzung habe...also dass ich nicht unendlich große dateien hochladen kann, weil sonst mein browser abbricht...


    Guck mal nach was in der PHP Info steht unter PHP Core -> upload_max_filesize

    Für PHPinfo PHP File mit folgendem Inhalt erstellen:

    Quellcode

    1. <?php
    2. phpinfo();
    3. ?>


    Kannst die größe entweder in der Konfigurationsdatei vom Webserver änder (falls du darauf Zugriff hast) oder versuchen die Configuration mit einer .htaccess File zu überschreiben.

    Quellcode

    1. php_value upload_max_filesize "2M"
    2. php_value post_max_size "2M"
    3. php_value max_execution_time 1200
    4. php_value max_input_time 1200
    5. php_value memory_limit 2M
    ~|__/
    ..o.o &lt;------------------- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world Domination.