我想将图像保存到 MSSQL 中的 varbinary(max) 字段中。
我的控制器中的存储方法如下所示:
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][SQL Server 的 ODBC 驱动程序 11][SQL
Server]Die implizite Konvertierung vom nvarchar(max)-Datentyp in
varbinary(max) ist nicht zulässig。
翻译:
从 nvarchar (max) 数据类型到 varbinary 的隐式转换
(最大)是不允许的。
这段代码对我有用
if($request->input('Image')){
$datastring = file_get_contents($request->input('Image'));
$data = unpack("H*hex", $datastring);
$data = '0x'.$data['hex'];
$photo = \App\TraineeImage::where('ID', 13)->first();
$photo->update(['Image' => \DB::raw("CONVERT(VARBINARY(MAX), $data) ") ]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)