Upload-Formular überarbeiten

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

  • Upload-Formular überarbeiten

    Hallo

    hab ein echt tolles [coderwiki]Informationen/Upload[/coderwiki] Script gefunden und auch schon nach meinem Wünschen angepasst (also Farbe und sowas). Allerdings bin ich noch ein Anfänger in php. :cry:
    Ich möchte gern, dass wenn man z.B. ein Bild doppelt hochlädt, dass im Formular nicht "Dateiname schon vorhanden" steht sondern, dass sich der Dateiname ändert in "dateinamegeneriertezahl.dateiendung".

    Ich häng den Code dran und würd mich tierisch über Hilfe freuen.
    Am besten mit einem fertig gestelltem Code. Wie gesagt bin eben noch Anfänger.

    Quellcode

    1. <?php
    2. #####KONFIGURATION #############################################
    3. // Absoluter Pfad zum Ordner in den die Datei hochgeladen werden soll.
    4. $pfad = "/bla/bla/bla";
    5. // Soll eine maximale Größe der Datei festgelegt werden ?
    6. $sizeabfrage = "yes";
    7. // Maximale Größe der Datei (Falls $sizeabfrage = "yes" ist)
    8. $filesize = "1024000";
    9. // Soll die maximale Größe auch angezeigt werden ?
    10. $sizeanzeige = "yes";
    11. // Was für Dateitypen sollen erlaubt sein ?
    12. $extend = "jpg|gif|png|bmp";
    13. // Sollen die erlaubten Dateitypen angezeigt werden ?
    14. $extendanzeige = "yes";
    15. // Check if file al exist, yes? make filename 'higher'.
    16. $i = "$i + 1";
    17. // Layout
    18. $body = "<body bgcolor=#999999 text=#000000 link=#FF0000 alink=#FF0000 vlink=#FF0000>";
    19. $font = "<font face=verdana size=2>";
    20. ##### Style KONFIGURATION #######################################
    21. ?>
    22. <html>
    23. <head>
    24. <title>UPLOAD</title>
    25. </head>
    26. <?php
    27. echo "$body";
    28. echo "$font";
    29. ?>
    30. <div align="center">
    31. <?
    32. ?>
    33. <table align="center">
    34. <form action="<?php $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
    35. <BR>
    36. <b>Bitte Datei auswählen:</b>
    37. <BR>
    38. <?
    39. if ($sizeanzeige == "yes") {
    40. echo ("Maximale Größe: 1024 kByte");
    41. }
    42. ?>
    43. <BR>
    44. <?
    45. if ($extendanzeige == "yes") {
    46. echo ("Erlaubte Dateitypen: ".$extend);
    47. }
    48. ?>
    49. <BR><BR>
    50. <input type="file" size="30" name="file">
    51. <BR>
    52. <input type="Submit" name="senden" value="Hochladen">
    53. </form>
    54. </table>
    55. <?
    56. ##### Ab hier nichts mehr ändern !! ################################
    57. $fehler = FALSE;
    58. if ($senden) {
    59. if ($file_name == "") {
    60. echo "<BR><font color=#FF0000><b>Es wurde keine Datei ausgewählt!<BR></b></font>";
    61. $fehler = TRUE;
    62. }
    63. if (!$fehler)
    64. if (file_exists("$pfad/$file_name")) {
    65. echo "<BR><font color=#FF0000><b>Dateiname schon vorhanden!<BR>Bitte benenne die Datei um und versuche es dann nochmal.<BR></b></font>";
    66. $fehler = TRUE;
    67. }
    68. if (!$fehler)
    69. if ($sizeabfrage == "yes") {
    70. if ($file_size > $filesize) {
    71. echo "<BR><font color=#FF0000><b>Die Datei ist zu groß!<BR></b></font>";
    72. $fehler = TRUE;
    73. }
    74. }
    75. if (!$fehler)
    76. if (!eregi("($extend)$", $file_name)) {
    77. echo "<BR><font color=#FF0000><b>Dieser Dateityp ist nicht erlaubt!<BR></b></font>";
    78. $fehler = TRUE;
    79. }
    80. if (!$fehler) {
    81. if (copy($file, $pfad."/".$file_name)) {
    82. echo "<BR><font color=#00FF00><b>Datei hochgeladen</b></font><BR>;
    83. $fehler = FALSE;
    84. }
    85. else {
    86. echo "<BR><font color=#FF0000><b>Datei nicht hochgeladen<BR></b></font>";
    87. $fehler = TRUE;
    88. }
    89. }
    90. }
    91. if ($fehler || !$senden) {
    92. }
    93. echo "<BR><hr width=100>";
    94. echo "<font size=1></font>";
    95. ?>
    96. </font>
    97. </div>
    98. </body>
    99. </html>
    Alles anzeigen
  • Quellcode

    1. // das folgende ganz an den anfang (nach <?php..) kopieren
    2. function make_filename($filename, $pfad)
    3. {
    4. //nicht die non-plus ultra funktion.. funktioniert nur mit 3 zeichen
    5. $end = substr($filename, -3);
    6. $start = substr($filename, 0, -3);
    7. $i=1;
    8. while(is_file($start.$i.'.'.$end))
    9. {
    10. $i++;
    11. }
    12. return $start.$i.'.'.$end;
    13. }
    14. //das hier an entsprechender stelle ersetzen
    15. if (!$fehler)
    16. if (file_exists("$pfad/$file_name")) {
    17. echo "<BR><font color=#FF0000><b>Dateiname schon vorhanden!<BR></b></font>";
    18. $file_name = make_filename($file_name,$pfad);
    19. echo "<BR><font color=#00FF00><b>Dateiname schon vorhanden!<BR>Neuer Dateiname: ".$file_name."<BR></b></font>";
    20. }
    Alles anzeigen


    http://nopaste.easy-coding.de/?id=280
  • Hallo

    Jetzt steht da aber

    dateinamezahl..dateiendung

    Also sind da jetzt 2 Punkte hintereinander.
    Ich wollte eigentlich nur einen Punkt (also den vor der Dateiendung) und sonst keinen.

    Hab da ein Beispiel gefunden virtual-life.net/img/upload.php
    Wenn dort 2 gleichnamige Dateien hochgeladen werden, wird auch eine zahl drangehängt und zwar mit nur einem Punkt vor der dateiendung.

    Also muss das doch auch mit meinem Code funktionieren, oder???
  • wegen aktueller Spende:

    Quellcode

    1. <?php
    2. function make_filename($filename, $pfad)
    3. {
    4. //nicht die non-plus ultra funktion.. funktioniert nur mit 3 zeichen
    5. $end = substr($filename, -3);
    6. $start = substr($filename, 0, -4);
    7. $i=1;
    8. while(is_file($pfad.'/'.$start.$i.'.'.$end)) {
    9. $i++;
    10. }
    11. return $start.$i.'.'.$end;
    12. }
    13. #####KONFIGURATION #############################################
    14. // Absoluter Pfad zum Ordner in den die Datei hochgeladen werden soll.
    15. $pfad = "/bla/bla/bla";
    16. // Soll eine maximale Größe der Datei festgelegt werden ?
    17. $sizeabfrage = "yes";
    18. // Maximale Größe der Datei (Falls $sizeabfrage = "yes" ist)
    19. $filesize = "1024000";
    20. // Soll die maximale Größe auch angezeigt werden ?
    21. $sizeanzeige = "yes";
    22. // Was für Dateitypen sollen erlaubt sein ?
    23. $extend = "jpg|gif|png|bmp";
    24. // Sollen die erlaubten Dateitypen angezeigt werden ?
    25. $extendanzeige = "yes";
    26. // Layout
    27. $body = "<body bgcolor=#999999 text=#000000 link=#FF0000 alink=#FF0000 vlink=#FF0000>";
    28. $font = "<font face=verdana size=2>";
    29. ##### Style KONFIGURATION #######################################
    30. ?>
    31. <html>
    32. <head>
    33. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    34. <title>UPLOAD</title>
    35. </head>
    36. <?php
    37. echo "$body";
    38. echo "$font";
    39. ?>
    40. <div align="center">
    41. <?
    42. ?>
    43. <table align="center">
    44. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    45. <BR>
    46. <b>Bitte Datei auswählen:</b>
    47. <BR>
    48. <?
    49. if ($sizeanzeige == "yes") {
    50. echo ("Maximale Größe: 1024 kByte");
    51. }
    52. ?>
    53. <BR>
    54. <?
    55. if ($extendanzeige == "yes") {
    56. echo ("Erlaubte Dateitypen: ".$extend);
    57. }
    58. ?>
    59. <BR><BR>
    60. <input type="file" size="30" name="file" />
    61. <BR>
    62. <input type="Submit" name="senden" value="Hochladen">
    63. </form>
    64. </table>
    65. <?
    66. ##### Ab hier nichts mehr ändern !! ################################
    67. $fehler = FALSE;
    68. if (isset($_POST['senden']) && isset($_FILES)) {
    69. extract($_POST);
    70. extract($_FILES);
    71. if ($file['name'] == "") {
    72. echo "<BR><font color=#FF0000><b>Es wurde keine Datei ausgewählt!<BR></b></font>";
    73. $fehler = TRUE;
    74. }
    75. if (!$fehler)
    76. if (file_exists("$pfad/".$file['name'])) {
    77. $file['name'] = make_filename($file['name'],$pfad);
    78. }
    79. if (!$fehler)
    80. if ($sizeabfrage == "yes") {
    81. if ($file['size'] > $filesize) {
    82. echo "<BR><font color=#FF0000><b>Die Datei ist zu groß!<BR></b></font>";
    83. $fehler = TRUE;
    84. }
    85. }
    86. if (!$fehler)
    87. if (!eregi("($extend)$", $file['name'])) {
    88. echo "<BR><font color=#FF0000><b>Dieser Dateityp ist nicht erlaubt!<BR></b></font>";
    89. $fehler = TRUE;
    90. }
    91. if (!$fehler) {
    92. if (@copy($file['tmp_name'], $pfad."/".$file['name'])) {
    93. echo "<BR><font color=#00FF00><b><a href='".$file['name']."'>Datei hochgeladen</a></b></font><BR>";
    94. $fehler = FALSE;
    95. }
    96. else {
    97. echo "<BR><font color=#FF0000><b>Datei nicht hochgeladen<BR></b></font>";
    98. $fehler = TRUE;
    99. }
    100. }
    101. }
    102. if ($fehler || !(isset($_POST['senden']))) {
    103. }
    104. echo "<BR><hr width=100>";
    105. echo "<font size=1></font>";
    106. ?>
    107. </font>
    108. </div>
    109. </body>
    110. </html>
    Alles anzeigen