2014-01-27 6 views
10

Ich habe ein Formular, das eine Textdatei per POST-Methode in Laravel 4 sendet. Innerhalb des Controllers kann ich jedoch nicht herausfinden, wie man seinen Inhalt erhält, um es in ein BLOB-Feld in der DB zu setzen.Wie erhalte ich den Inhalt einer Datei, die per POST in Laravel 4 gesendet wurde?

Laravels Dokumentation und alle Posts, die ich im Internet gefunden habe, zeigen immer, wie man den Inhalt mit der ->move() Methode in einer Datei speichert.

Dies ist mein Code im Controller:

$book = Books::find($id); 
$file = Input::file('summary'); // get the file user sent via POST 
$book->SummaryText = $file->getContent(); <---- this is the method I am searching for... 
$book->save(); // save the summary text into the DB 

(SummaryText ist ein MEDIUMTEXT- auf meiner DB-Tabelle).

So, wie Sie den Dateiinhalt in Laravel 4.1 erhalten, ohne es in eine Datei speichern zu müssen? Ist das möglich?

Antwort

14

Wenn Sie eine Textdatei veröffentlichen, sollte diese bereits auf dem Server sein. Gemäß der Laravel Dokumentation, Input::file gibt ein Objekt zurück, das die PHP-Klasse erweitert SplFileInfo so sollte diese Arbeit:

$book->SummaryText = file_get_contents($file->getRealPath()); 

Ich bin nicht sicher, ob die PHP-Methode file_get_contents wird im Rahmen Laravel arbeiten ... wenn es doesn ‚t versuchen Sie dies:

$book->SummaryText = File::get($file->getRealPath()); 
+0

Ja, 'file_get_contents()' funktioniert unter Laravel. Ich habe deine erste Lösung gewählt. Vielen Dank! –

0
\File::get($directory.$filename); 

Arbeiten für mein Projekt, in dem Verzeichnis und Dateinamen durch die Upload-Methoden bestimmt werden. Der Backslash wird beim Erstellen von Arbeitsbereichen (Paketen) in Laravel4 verwendet.

3

Bessere Lösung anstelle von file_get_contents wird die Verwendung der SPL-Klassenmethoden sein, da FileUpload sie bereits erweitert.

$file = Input::file('summary')->openFile(); 
$book->SummaryText = $file->fread($file->getSize()); 

Um mehr über SplFileInfo und SplFileObject zu lesen sehen:

Wie die wirklich nützlich sein könnte und SPL mit der OOP ist schönere Lösung als strukturell bedingt ist PHP-Funktionen.

Verwandte Themen