2016-08-30 1 views
1

Ich habe ein einfaches PHP-Skript, das eine Datei in ein Verzeichnis schreibt, wo sie sich befindet, aber in ein Verzeichnis namens "temp" geschrieben werden muss.Speichern der Datei in ein neues Verzeichnis mit fwrite

Es gibt viele Antworten hier auf das Thema, aber ich kann nicht finden, was ich brauche. Habehttp: //us2.php.net/manual/en/function.fwrite.php mit keinem Glück überprüft.

Hier ist die grundlegende PHP ohne Form Teil:

<?php 

function saveFile($filename,$filecontent){ 
    if (strlen($filename)>0){ 
     $file = @fopen($filename,"w"); 
     if ($file != false){ 
      fwrite($file,$filecontent); 
      fclose($file); 
      return 1; 
     } 
     return -2; 
    } 
    return -1; 
} 

?> 

Diese unter dem/form-Tag erscheint:

<?php  

    if (isset($_POST['submitBtn'])){ 
     $filename = (isset($_POST['filename'])) ? $_POST['filename'] : '' ; 
     $filecontent = (isset($_POST['filecontent'])) ? $_POST['filecontent'] : '' ; 

?> 

und dann:

<?php 

     if (saveFile($filename,$filecontent) == 1){ 
      echo "<tr><td><br/>File was saved!<br/><br/></td></tr>"; 
     } else if (saveFile($filename,$filecontent) == -2){ 
      echo "<tr><td><br/>An error occured during saving file!<br/><br/></td></tr>"; 
     } else if (saveFile($filename,$filecontent) == -1){ 
      echo "<tr><td><br/>Wrong file name!<br/><br/></td></tr>"; 
     } 

?> 

Dank für die Eingabe.

Antwort

0

Sie sollten überprüfen, ob der Ordner existiert und wenn nicht, um ihn zu erstellen. Der Code sollte wie folgt aussehen:

<?php 

function saveFile($filename,$filecontent){ 
    if (strlen($filename)>0){ 
     $folderPath = 'temp'; 
     if (!file_exists($folderPath)) { 
      mkdir($folderPath); 
     } 
     $file = @fopen($folderPath . DIRECTORY_SEPARATOR . $filename,"w"); 
     if ($file != false){ 
      fwrite($file,$filecontent); 
      fclose($file); 
      return 1; 
     } 
     return -2; 
    } 
    return -1; 
} 

?> 

Auch ich einen anderen Teil des Codes verbessert haben mehrere Anrufe auf die Funktion zu vermeiden, wenn etwas schief geht.

<?php 
     $fileSavingResult = saveFile($filename, $filecontent); 
     if (fileSavingResult == 1){ 
      echo "<tr><td><br/>File was saved!<br/><br/></td></tr>"; 
     } else if (fileSavingResult == -2){ 
      echo "<tr><td><br/>An error occured during saving file!<br/><br/></td></tr>"; 
     } else if (fileSavingResult == -1){ 
      echo "<tr><td><br/>Wrong file name!<br/><br/></td></tr>"; 
     } 

?> 
+0

Dank Andrej. Getting error "Parse Fehler: Syntaxfehler, unerwartet '{' in Zeile 6". Der erste Teil des Skripts befindet sich oben auf der Seite. Zeile 6 ist: if (! File_exists ($ folderPath) { – Woody

+0

@Woody Es ist behoben. –

+0

Nochmals vielen Dank @Andrej. Fehler behoben! Nicht erhalten die echo-Nachricht nach der Datei erstellt/hochgeladen erfolgreich, aber studieren warum. – Woody

0
$tempFile = fopen("temp/filename", "w"); 
fwrite($tempFile, $filecontent); 
Verwandte Themen