2017-03-05 2 views
0

Ich habe ein Formular, das eine TXT-Dateieingabe empfängt. In meinem PHP-Code, rufe ich diese Datei von der Form und versuche, es auf dem Server zu speichern:stream_get_contents() gibt eine leere Zeichenfolge zurück

$fp = fopen($_FILES['textFile']['tmp_name'], 'rb'); 
saveFile($fp); 

//saves file to server with a random file name 
function saveFile($file) { 

    $fileName = mktime().".txt"; 

    //creates new file 
    $newFile = fopen("".$fileName, 'w'); 
    $content = stream_get_contents($file); 
    echo "CONTENT ".$content; 
    if($newFile) { 
    fwrite($newFile, $content); 
    fclose($newFile); 
    fclose($file); 
    echo "File saved in server as ".$fileName."."; 
    } else { 
    echo "Failed to write file to server."; 
    } 
} 

Ich bin in der Lage, die Datei zu speichern, aber es ist leer.

+0

'stream_get_contents' arbeitet mit einer bereits geöffneten Stream-Ressource und gibt den verbleibenden Inhalt in einer Zeichenfolge zurück. Überprüfen Sie daher, wo Sie den Stream öffnen. Sie können 'file_get_contents' verwenden – gaurav

Antwort

0

Sie müssen den Inhalt im Ausdruck analysieren, damit der Inhalt des Streams vor dem Parsen der Funktion fwrite zurückgegeben und aufgelöst wird. Um dies zu tun, müssen Sie einen zusätzlichen Satz von Klammern um Ihre $content Variable verwenden, wie zum Beispiel "fwrite($newFile, ($content));".

Verwandte Themen