file_put_contents

Olá pessoal,

Dentro de um projeto meu eu tenho que fazer o upload de um arquivo (.pdf ou .jpg) o qual imediatamente tenho que enviar email do mesmo.
Estou utilizando um campo “documento (banco de dados)”, cujo campo no BD é um bigblob.
Bem, pela necessidade de enviar o email, reparei que antes tenho que jogar este arquivo num file system (no meu caso linux), então resolvi utilizar o “file_put_contents()”.
O PDF ou JPG que está sendo gravado aparece como corrompido.
Tentei txt pra ver se há alguma coisa estranha, mas o txt fica em ordem.

Alguém tem alguma dica?

Abs

Ricardo

file_put_contents é igual usar fopen(), fwrite(), acho que ela não serve pra criar esse tipo de arquivo que você quer.

O mai recomendado nesse caso é que ao anexar o arquivo você já o recupere na pasta tmp (o sc vai dar um nome pre ele tipo sc_080989987897.jpg ou pdf) antes de gravar no banco o arquivo. Aí é só usar a função de e-mail pra anexar o danado.

Obrigado pela atenção Saulo.

Você poderia me dizer como eu recupero o nome do arquivo que está no tmp?

Valeu

Ricardo

Na verdade porque você não envia o arquivo direto no e-mail, é só chamar o arquivo como anexo na função de e-mail do SC.

http://helpdesk.scriptcase.com.br/desk/base/kb/article/portugues/programacao/exemplo-da-macro-sc_mail_send

Saulo,

Eu entendi sua sugestão, mas eu não sei como recuperar o nome do arquivo temporário.
Procurei nas macros mas não achei nada parecido.

Obrigado pela ajuda

Cara eu nunca tive a necessidade de recuperar o tmp do arquivo mas com certeza tem haver com a função $_FILES do próprio php e não uma macro pronta do SC.
Agora se você quiser pegar o arquivo já upado para a pasta e anexar é só chamar assim:

$anexo = “seu\diretorio”.{arquivo};

E no sc_mail dentro da função chama a variável como anexo, inclusive se for mais de um arquivo é só colocar tudo dentro de um array que a macro sc_mail anexa tudo.