Upload de pdf na base64 - Laravel
Turma esta dando erro neste item em negritom, estou tentando , pegar um pdf que esta convertido em base64 e mandando ele gerar o arquivo e gravar numa pasta determinada com um nome, alguem poderias me ajudar? urgente. Ovbrigado
TrablheController.php
public function post(Request $request)
{
$rules = [
'nome' => 'required|string',
'data_nascimento' => 'required|date',
'email' => 'required|string',
'cpf' => 'required|string',
** 'curriculo' => ['required','mime:/application\/(?:docx||pdf\+xml);base64,.+/'],**
];
$validator = Validator::make(request()->json()->all(), $rules);
if ($validator->fails()) {
return response()->json($validator->errors()->toArray(), 422);
}
$vagas = Vagas::select('id')->firstOrFail();
$data = $request->json()->all();
** $fileB64 = isset($data['curriculo']) ? $data['curriculo'] : false;**
unset($data['curriculo']);
$trabalheconosco = new TrabalheConosco;
foreach (array_keys($rules) as $key) {
if (array_key_exists($key, $data)) {
$trabalheconosco->{$key} = $data[$key];
}
}
$trabalheconosco->save();
*** if ($fileB64) {
$trabalheconosco->curriculo = $this->saveFileB64($fileB64, 'images/curriculos', $trabalheconosco->id);
$trabalheconosco->save();
}***
$vagas->TrabalheConosco()->save($trabalheconosco);
return response()->json(['data' => $trabalheconosco->toArray()], 201);
}
**Controller.php**
public function saveFileB64($fileB64, $path = '', $id = null): string
{
$chunkf = explode(';base64,', $fileB64, 2);
$chunkf[0] = str_replace('data:', '', $chunkf[0]);
if (!isset(self::MIMES[$chunkf[0]], $chunkf[1])) {
return null;
}
$extension = self::MIMES[$chunkf[0]];
$fileBin = base64_decode($chunkf[1]);
$time = time();
$pathName = null;
do {
$pathName = "$path/{$id}_{$time}_"
. abs(crc32(uniqid('f', true))) . $extension;
} while ($this->storage->exists($pathName));
$this->storage->put(file_put_contents($pathName, $fileBin));
return $pathName;
}
**ERROR NO INSOMNIA ( 500 INTERNAL SERVER ERROR)**Discussão (0)
Carregando comentários...