move_uploaded_file

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • move_uploaded_file

    Guten Abend,

    Ich habe folgendes kleine Upload-Script:
    PHP-Code:
    <body>
    <form enctype="multipart/form-data" action="<? $_SERVER['PHP_SELF'] ?>" method="post">
      <input type="hidden" name="MAX_FILE_SIZE" value="1048576">
      <input type="file" name="toProcess">
      <input type="submit" name="senden" value="Upload">
    </form>
    <?
    $upload_dir = "htdocs/php/upload/updat/";

    if($_POST['senden']){
       
       
       print($_FILES['toProcess']['name'])."<br>";
       print($_FILES['toProcess']['type'])."<br>";
       print($_FILES['toProcess']['size'])."<br>";
       print($_FILES['toProcess']['tmp_name']);
       
       move_uploaded_file($_FILES['toProcess']['tmp_name'], $upload_dir.$_FILES['toProcess']['name']);
       }
    ?>
    </body>
    funktioniert soweit ganz gut. nur leider geht es nicht mehr, wenn
    ich die selbe datei nochmals hochlade. dann wird folgender fehler ausgegeben:

    Warning: move_uploaded_file(htdocs/php/upload/updat/document.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in G:\Programme\Apache\apachefriends\xampp\htdocs\PHP\upload\upload.php on line 27
    im Manual steht aber:
    Sollte die Zieldatei bereits existieren, wird sie überschrieben.
    Wo liegt also der Fehler?
    Zuletzt geändert von hydrococcus; 12.05.2005, 23:24.

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

  • #2
    Die Lösung des Problems ist gefunden. Es lag wie fast immer
    am Pfad:
    PHP-Code:
    $upload_dir "updat/"
    Warum aber die Pfadangabe vom Wurzelverzeichniss aus nicht
    funktioniert..???

    Vielleicht erklärt's mir mal einer.

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

    Kommentar


    • #3
      Original geschrieben von hydrococcus
      Warum aber die Pfadangabe vom Wurzelverzeichniss aus nicht
      funktioniert..???
      weil dein "wurzel"verzeichnis hier beginnt => G:\Programme\Apache.... ?!
      Kissolino.com

      Kommentar


      • #4
        Warum funktioniert dann aber der erste Upload, und auch jeder
        weitere mit einer beliebigen Datei? Wenn ich aber eine Datei
        wiederholt uploade ( selben namens ) dann geht es nicht mehr?!

        Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

        Kommentar


        • #5
          BTW: es gibt das verzeichnis "updat" (ohne e/a)?

          Kommentar


          • #6
            verzeichniss "updat" existiert, ja.

            ohne e/a ???

            Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

            Kommentar


            • #7
              Also, ich hab das Script jetzt folgendermaße geändert:
              PHP-Code:
              <body>
              <form enctype="multipart/form-data" action="<? $_SERVER['PHP_SELF'] ?>" method="post">
                <input type="file" name="toProcess">
                <input type="submit" name="senden" value="Upload">
              </form>
              <?
              if(isset($_POST['senden'])){

                 $fehler = FALSE;

                 $max_file_size = "1048576";
                 $userfile_dir  = "updat/"; 
                 $userfile_extd = "pdf";
                 $userfile_name = "document";
                 $userfile_size = $_FILES['toProcess']['size'];
                 $userfile_type = $_FILES['toProcess']['type'];
                 
                 if(!eregi($userfile_extd, $userfile_type)){
                 echo "Falscher Dateityp! Bitte nur .".$userfile_extd."<br>";
                 $fehler = TRUE;
                 }else{$fehler = FALSE;}
                 
                 if($fehler){
                 echo "Datei wurde nicht hochgeladen!";
                 die();
                 }
                 
                 if($userfile_size > $max_file_size){
                 echo "Maximale Dateigröße beträgt ".(($max_file_size/1024)/1024)." MegaByte !<br>";
                 $fehler = TRUE;
                 }else{$fehler = FALSE;}
                 
                 if($fehler){
                 echo "Datei wurde nicht hochgeladen!";
                 die();
                 }
                 
                 if(!$fehler){
                 if(is_uploaded_file($_FILES['toProcess']['tmp_name'])){
                 move_uploaded_file($_FILES['toProcess']['tmp_name'], $userfile_dir.$userfile_name.".".$userfile_extd);
                 echo "Datei wurde erfolgreich hochgeladen!";
                 }
                 } 
              }
              ?>
              </body>
              Worauf es mir dabei ankam, waren folgende Punkte:
              - Maximale Dateigröße zum hochladen 1MB
              - FileType ausschließlich PDF
              - Das Script sollte sicher sein

              Über Kritik, oder Verbesserungsvorschläge wäre ich sehr froh.

              Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

              Kommentar

              Lädt...
              X