Jump to content
avelar.avelar

Upload de pdf na base64 - Laravel

Recommended Posts

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)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ViniciusRamoa
      Eu peguei um site já pronto em laravel, minha ideia era só pegar o site que o cara distribuiu e mudar layout aos poucos para se adaptar para mim, eu sei, digamos, o intermediário de css e básico de Php e html, e o que eu quero alterar é só o básico como: cores, background e etc, mas mesmo eu alterando os arquivos css ou até mesmo apagando todos os arquivos css, NADA muda no site, como se fosse inútil os arquivos css, mudar a aparência no laravel é diferente? Qual o método?
      Vale lembrar que possui vários arquivos .blade (index.blade, footer.blade etc), isso tem algo a ver? Obrigado
    • By rjlfurtado
      Segue abaixo o exemplo de como seria feito em SQL:
      CREATE TABLE tabela ( campo1 DOUBLE, campo2 DOUBLE, divisao DOUBLE AS (campo1/campo2) ); Agora eu preciso criar uma migração no Laravel 6, segue exemplo abaixo:
      $table->integer('qtd_saida'); $table->decimal('valor_uni', 8, 2); $table->double('valor_total')->as(qtd_saida * valor_uni);  
    • By Jefferson andre
      ola, 
       
      Tenho um formulario com dois metodos POST, um deles salva o formulario e o outro permite fazer upload de arquivos para uma subpasta.
       
      Os dois esta funcionando separadamente mas ao utilizar o envio de arquivos o programa salta para um outro arquivo php que nao retorna apos ter feito o envio.
       
      Existe algum comando que retorne a pagina que estava sem perder os dados preenchidos ?
       
      Tem como existir dois metodos POST no mesmo programa e o action do formulario enviar para o local correto sem chamar um programa externo ?
       
      Tentei o retry e o return mas nao deram certo, provavelmente fiz algo errado.
       
      Agradeco a ajuda
       

    • By fbezerra
      Como eu comparo uma data e altero uma coluna do banco. EXEMPLO: cliente, durante 90 dias ele não teve nenhum apontamento, pego a coluna status do cliente e altero INATIVO.
       
      Cliente

       
      apontamento
       

    • By kelvinferraz
      Boa tarde Devs,
       
      Estou precisando de uma ajuda, estou desenvolvendo um sistema e a ideia é publica-lo na web para os meus clientes acessarem, porém gostaria de poder realizar a cobrança de acesso a esse sistema, cobrando uma taxa  mensal, alguém já desenvolveu algo do tipo e poderia me dar uma força?
       
      A ideia é o cliente acessar o site em seguida ir em cadastre-se, (nesse ponto abrirá uma opção de forma de pagamento ainda não sei qual API tentar utilizar PagSeguro, Paypal, MercadoPago) mas enfim o cliente só consegue se registrar e acessar após a confirmação do pagamento e consequentemente no mês seguinte para manter o acesso efetuar novamente o pagamento, como se fosse uma conta de acesso Netflix.
       
      Sei que deve ser complexo tentar implementar, porém se alguém tiver um case para poder me explicar já ajudaria.
       
       
      Obrigado
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.