php slim如何使用eloquent上传文件?

时间:2017-11-01 20:35:12

标签: php eloquent slim

我正在尝试上传图片并使用邮递员而且图片未插入数据库

这是错误

关于我应该做什么的任何建议?

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'image' cannot be null (SQL: insert into `images` (`image`) values ())

这是路线

$app->post('/images', function($request, $response, $args) {
  $data = $request->getUploadedFiles();
  $image = new Image();
  $image->image = $data['image'];
  $image->save();

  return $this->response->write($image->toJson());
});    

这是邮递员页面

enter image description here

这是标题

enter image description here

1 个答案:

答案 0 :(得分:0)

<强>问题

您正在将模型图像属性设置为\Psr\Http\Message\UploadedFileInterface类型的对象,而不是字符串。模型不知道如何处理对象。

Slim $request->getUploadedFiles()会返回类型为\Psr\Http\Message\UploadedFileInterface不是字符串的对象。

<强>解决方案

要访问图片数据,首先我们需要获取

$data = $request->getUploadedFiles();
$uploadedImage = $data['image'];
$uploadedImageStream = $uploadedImage->getStream();

现在我们已经拥有,我们可以从文件中读取。但是,我们只是一次获取所有数据并将其设置为Model属性:

$image->image = $uploadedImageStream->getContents();