kostenloser Webspace werbefrei: lima-city


Uploadscript: Soll in anderem Ordner speichern! HILFE : /

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    d****n

    Hey leudde!
    Ich nutze folgendes Upload-Script:

    <form enctype="multipart/form-data" action="index.php" method="post">
    								<input type="hidden" name="MAX_FILE_SIZE" value="10000000"/> <input type="hidden" name="check" value="1"/> <input type="file" name="datei"/><br/>
    								<input type="submit" value="Hochladen"/><br/>
    							</form>
    							<b>(maximal 10.000KB!)</b><br/>
    							<br/>
    							<?php
    if(!empty($datei))
    {
    $dateiname=$datei_name;
    $dateiinfo=pathinfo($dateiname);
    switch ($dateiinfo[extension])
     {
       case avi:
       case php:
       case php4:
       case php3:
       case mpeg:
       case mpg:
       case mp3:
       case wmv:
       case wma:
       case mov:
       case rar:
       case bik:
       case wav:
       case vir:
       case ogg:
       case zip:
       case ace:
       case tar:
       case exe:
       case lzh:
       case tar.gz:
       case tar.bz2:
       case gz:
       case bz2:
          {
             die("<br/>$dateiinfo[extension]-Dateien sind nicht erlaubt<br/>");
          }
       default:
          {
             if(file_exists($dateiname))
                {
                   while(file_exists($dateiname))
                   {
                      $dateiname="(1)".$dateiname;
                   }
                   echo "Die Datei mit dem Dateinamen <b>$datei_name</b> existierte bereits.<br> Ihre Datei wurde in <b>$dateiname</b> umbenannt";
                }
              if($datei_size > $MAX_FILE_SIZE)
                    {
                        echo "Die Datei ist zu gro?, die maximale Dateigr?sse betr?gt $MAX_FILE_SIZE Byte(s)";
                    }
                 else
                    {
                        copy($datei,"$dateiname");
                        if( file_exists($dateiname))
                           {
                                  echo "<br>Die Datei <b>$datei_name</b> wurde mit <b>$datei_size Byte</b> erfolgreich hochgeladen.<BR>
                         <b><a href='http://disoon.pyrokar.lima-city.de/chr!z/$datei_name'>http://disoon.pyrokar.lima-city.de/chr!z/$datei_name</a></b>";
                           }
                        elseif(! file_exists($dateiname))
                           {
                                  echo "Die Datei ist nicht vorhanden";
                           }
                    }
          }
    }
    }
    ?>



    Jedoch wird dann die hochgeladene datei unter:
    http://disoon.pyrokar.lima-city.de/chr!z/ gespeichert aber ich m?chte dass es in dem ordner:
    http://disoon.pyrokar.lima-city.de/chr!z/pix/ gespeichert werden, damit man die hochgeladenen dateien in einer "Index of"-Liste sehen kann.

    Wenn ich an die oben stehenden pfade (die im code) einfach noch "pix/" dranf?ge, dann wird nur der uploadlink dorthinverlinkt, jedoch die bilder nicht dort gespeichert!

    Wisst ihr was man anders machn muss?
    Bitte unbedingt um hilfe!!!


    greetz
    Disoon
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. http://de.php.net/manual/de/function.move-uploaded-file.php

    ?brigens w?rde ich die Dateityperkennung nicht von der Endung abh?ngig machen. Diese "doofe" Methode wird zwar auch von Windoze benutzt, aber man sollte nicht alles nachmachen, was Herrn Gates' Mannen so fabrizieren. Bin?r-Dateien (und das sind die meisten verbotenen Dateien) erkennt man daran, dass im Dateiinhalt irgendwo immer 0-Bytes vorkommen. In Text-Dateien treten die dagegen nie auf.

    Um bestimmte Dateitypen zu erkennen und andere Bin?rdateien auszuschlie?en benutze ich folgendes Script-Fragment:

    // Nicht-Text-Dateien erkennen
    $is_no_text_file = FALSE;
    $tbuf = '';
    $non_text_markers = array(
      '&#8240;PNG',             // PNG
      'GIF8',             // GIF
      '????',             // JFIF
      'BM6',
      'BM8',
      '%PDF',             // PDF
      'PK'.chr(3).chr(4), // zip-Files
      'MZ'                // Win-Exe
    );
    $tfh = @fopen($_FILES[$upfile]['tmp_name'], 'r');
    if($tfh === FALSE ) {
    }
    else {
      $tbuf = @fgets($tfh);
      //printf("==tbuf[%s]==<br />", dehtml($tbuf) );
    
      if( strpos($tbuf, chr(0) ) > -1 ) {
        $is_no_text_file = TRUE;
        //print("Datei enth?lt Null-Zeichen!<br />\n");
      }
      else {
        foreach($non_text_markers as $val) {
          if( strpos($tbuf, $val) === 0 ) {
            //printf("Keine Text-Datei!!!(%s)<br />\n", $val);
            $is_no_text_file = TRUE;
            break;
          }
        }
      }
      @fclose($tfh);
    }


    $_FILES[$upfile]['tmp_name'] ist dabei der Name der hochgeladenen Datei.

    Must du nat?rlich noch f?r deine Zwecke passend basteln. Und die f?r Uploads gedachten superglobalen Variablen verwenden. Das ist besser als die automatisch erzeugten, wie in deinem Fall $dateiname ...
  4. Autor dieses Themas

    d****n

    was bringt mir das wenn ich die nicht Text-Dateien erkenne?
    brauch ich doch gar nicht! das soll gr??ten teils f?r bilder sein, darf aber auch textdateien enthalten, au?erdem soll das nicht ?ffentlich sein und das bleibt es auch solang keiner einfach mal auf die idee kommt, diese page in den browser einzugeben^^

    aber wie wird denn nun mein problem gel?st?
    Ich hab leider selbst kaum ahnung von php!

    greetz
    Disoon
  5. s***l

    Also ich hab auch mal so ein Script gebastelt und zum uploaden folgendes verwendet:
    $path = "$unterordner/$dateiname";
    copy($upload_datei, $path);


    Also bei mir hat es so funktioniert! Kannst es dir ja anschaun:
    http://www.file.it.tp
  6. Autor dieses Themas

    d****n

    Hmm, auf dieser page gibt es nur den uploader aber kein script...ich wills ja selbst anbieten, da n?tzt mir das recht wenig und bei deinem php-code m?sste man ja noch alle funktionen hinzuf?gen wie erlaubte/verbotene dateien, die max. gr??e und der Link der ausgegeben werden soll, wo die datei ist!

    greetz
    Disoon
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!