【发布时间】:2022-01-11 02:53:21
【问题描述】:
我想将图像保存到 MSSQL 中的 varbinary(max) 字段中。
我的控制器中的 store 方法如下所示:
public function store(Request $request)
{
$vorname = $request->input('vorname');
$nachname = $request->input('nachname');
$file = $request->file('avatar');
$extension = $file->clientExtension();
$fullname = $nachname . "_" . $vorname . "." . $extension;
$file->storeAs('avatars' , $fullname);
$path = storage_path() . "\app\avatars\\". $fullname;
$imageData = unpack("H*", file_get_contents($path));
Mitarbeiter::create([
'PersonalNr' => request('personalnr'),
'Mitarbeiterschluessel' => request('mitarbeiterkey'),
'Vorname' => $vorname,
'Familienname' => $nachname,
'Bild' => $imageData[1]
]);
return view('welcome');
}
我收到一个错误:
SQLSTATE[42000]:[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Die implizite Konvertierung vom nvarchar(max)-Datentyp in varbinary(max) ist nicht zulässig.
翻译:
从 nvarchar (max) 数据类型到 varbinary 的隐式转换 (max) 是不允许的。
【问题讨论】:
-
一个题外话的问题,你为什么要尝试将图像存储在数据库中? Laravel 提供了一个很棒的 Storage API,你为什么不使用它呢?有什么特别的原因吗?
标签: php sql-server laravel