erro ao enviar email com anexos usando filas
[Concluído]
Boa tarde, Carlos, estou com o seguinte problema há uns dias. quando eu envio um email com anexos e sem usar fila o email é enviado, mas quando eu envio usando fila dá o seguinte erro Swift_IoException: Unable to open file for reading, você sabe o motivo? o código está assim:
Olá, Rafael!
Tudo bem?
Você tem esse código no GitHub?
---
No loop, qual o conteúdo de $file?
dd($file);
Precisa usar os helpers do para passar o path full do arquivo (storage_path ou public_path):
storage_path($file)
Boa tarde, Carlos, o GitHub é https://github.com/rafaduarte/sirn
a branch que estou trabalhando é a proedi.
já tentei com os (storage_path ou public_path), mas não deu certo
boa noite, Carlos, complementando o exemplo está neste diretório https://github.com/rafaduarte/sirn/blob/master/app/Http/Controllers/Proedi/EnviarRelatorioController.php
que o controller de enviar relatório dentro do método de update
No loop, qual o conteúdo de $file?
dd($file);
print: https://uploaddeimagens.com.br/
$file é o caminho do arquivo que está em storage, pois estou utilizando o link simbolic,
com dd($file) retornar o primieiro caminho do loop
"storage/app/public/1650922059.webnewboletovi.pdf"
Está errado esse path armazenado:
storage/app/public/1650922059.webnewboletovi.pdf
Deveria armazenar apenas o path relativo do arquivo "1650922059.webnewboletovi.pdf"
Porque assim você usaria o storage_path('1650922059.webnewboletovi.pdf') e o resultado final seria:
/var/www/diretorio-do-projoto/storage/app/public/1650922059.webnewboletovi.pdf
---
O problema real está no momento de fazer o upload, na realidade, no momento que salva path onde foi armazenado no banco;
Onde está o código que faz o upload do arquivo?
Eu posso verificar para você onde errou, caso não identifique;
o código está assim:
https://uploaddeimagens.com.br/imagens/1cIIHoo
têm vários ifs como no print que move os uploads para storage
essa ação de enviar os emais com anexo só é para acontecer quando o usuário atualizar os arquivos
Essa parte do código onde passa esse path manualmente está bem complicada, porque assim você fica preso a uma estrutura de diretórios pré-definida.
Procura usar a classe de Storage do Laravel, porque assim você usa as configurações de disks definida no arquivo de configuração.
Porque no final das contas você precisa recuperar o anexo com o caminho full, tipo:
/var/www/diretorio-do-projoto/storage/app/public/nome-do-arquivo.pdf
---
Neste curso aqui foi um dos que usei armazenamento, porém mais avançado, porque usamos uma classe de service só para fazer isso:
https://academy.especializati.com/curso/laravel-desenvolvendo-sistema-administracao
Carlos, apliquei as funções da classe storage tanto no controller quanto na classe de email e deu certo, vou assistir o curso que voceê sugeriu, Obrigado.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!