我试图将保存的base64 pdf文件存储到laravel中的公共文件夹中。我写了这个控制器来存储文件。
我尝试使用此控制器解码我的pdf文件并将其存储在uploads文件夹中。该请求提供了base64 pdf文件。
if($request->get('cv')){
$file = $request->get('cv');
$ext = $file->getClientOriginalExtension();
$newName = rand(100000,1001238912).".".$ext;
$base64 = base64_encode($file);
$file->move('uploads/file', $base64);
$users->cv = $base64;
}
但是此方法向我显示此错误。
Call to a member function move() on string
如何解决此问题?
答案 0 :(得分:0)
$request->get('cv');
将返回字符串而不是文件,这就是为什么move()无法工作的原因。
代替
$request->get('cv');
尝试使用
$request->file('cv');
答案 1 :(得分:0)
您应该使用file方法获取输入文件,
if($request->file('cv')){
$file = $request->file('cv');
$ext = $file->getClientOriginalExtension();
$newName = rand(100000,1001238912).".".$ext;
$base64 = base64_encode($file);
$file->move('uploads/file', $base64);
$users->cv = $base64;
}
答案 2 :(得分:0)
正确的答案
if($request->get('cv')){
$file = $request->get('cv');
$base = base64_decode($file);
$base64 = time().'.' . explode('/', explode(':', substr($file, 0, strpos($file, ';')))[1])[1];
$destinationPath = public_path() . "/uploads/file/" . $base64;
file_put_contents($destinationPath, $base);
$users->cv = $base;
}