我正在尝试上传图片并使用邮递员而且图片未插入数据库
这是错误
关于我应该做什么的任何建议?
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());
});
这是邮递员页面
这是标题
答案 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();