如何在Laravel 4中获取通过POST发送的文件的内容?

2022-08-30 19:39:37

我有一个表单,通过Laravel 4中的POST方法发送文本文件。但是,在控制器内部,我无法弄清楚如何获取其内容以将其放入数据库的BLOB字段中。

Laravel的文档和我在网络中找到的所有帖子,总是显示如何使用该方法将内容保存到文件中。->move()

这是我在控制器中的代码:

$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是我的DB表上的MEDIUMTEXT)。

那么,如何在Laravel 4.1中获取文件内容,而不必将其保存到文件中?这可能吗?


答案 1

如果要将文本文件发布到,则它应该已在服务器上。根据 laravel 文档,返回一个扩展 php 类的对象,因此这应该可以工作:Input::fileSplFileInfo

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

我不确定php方法是否适用于Laravel框架...如果它不尝试这个:file_get_contents

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

答案 2

从Laravel v5.6.30开始,您可以获得上传文件的文件内容,例如:

use Illuminate\Http\Request;

Route::post('/upload', function (Request $request) {
    $content = $request->file('photo')->get();
});

来源: 此提交


推荐