Ir para conteúdo
Fórum Script Brasil
  • 0

Codigo Para Anexar


Senshi

Pergunta

to com um formulario, dai resolvi fazer com que a pessoa pudesse anexar algum arquivo para ser enviado junto com os dados e tal para meu email!!

alguempode me ajudar ai: qual e o codigo para anexar um arquivo?

sei que htm é assim, e o scritp o que eu colocu a mais?

<input type="file"...

valeu

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Cara, da uma procurada ali na pesquisa que já tiveram muitos tópicos explicando como anexar arquivo.

Link para o comentário
Compartilhar em outros sites

  • 0

ai galera.. consegui o script mas esta dando erro na linha 72.

o que sera que aconteceu? me ajudem..

esse e o script completo:

<?
if ($acao == "anexar") // Se for apertado o botão de enviar ele entra neste if !

{

$tamanho_maximo = 1000*1000; // Tamanho máximo de 200 Kb - Você pode aumentar ou diminuir este valor se quiser !
// Eu recomendo que deixe da maneira que esta , se fizer um envio de arquivo em anexo publico!

if ($anexo_size <= $tamanho_maximo){ // Compara o tamanho máximo permitido com o tamanho do arquivo que será enviado !

if ($anexo != " "){ // Se existir arquivo anexo para ser enviado ele entra neste if !

$corpo = "corpo\n"; // $Corpo é a variável do corpo do e-mail isso é onde aparece a mensagem do e-mail !

$mime_list = array("gif"=>"image/gif", "jpg"=>"image/jpg", "jpeg"=>"image/jpeg"); // Uma lista de tipos de arquivo que podaram ser enviados em anexo !

$ABORT = FALSE;

$data = "XYZ-" . date(dmyhms) . "-ZYX"; // Data de envio do e-mail !

// Mensagem do e-mail para o script entender que é um e-mail com anexo !

$message = "--$data\n";
$message .= "Content-Transfer-Encoding: 8bits\n";
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n";
$message .= $corpo;
$message .= "\n";

// Pega o caminho completo do nome do arquivo !
$vet_anexo[1] = $anexo;

//Checa se o arquivo que será anexado do existe e este será codificado !
foreach($vet_anexo as $chave => $caminho) {
if ($caminho !='') {
if (file_exists($caminho)){
//Tentando abrir o aquivo
if ($arq = fopen($caminho,"rb")) {
//Pega o nome do aquivo apartir do seu caminho
$arq_nome = array_pop(explode(chr(92),$caminho));
$conteudo = fread($arq,filesize($caminho));
//Codifica os dados do Arquivo
$codificado = base64_encode($conteudo);

//*****SPLIT(Separando ou quebrando os dados codificados)*****
$codificado_split = chunk_split($codificado);
fclose($arq);
$message .= "--$data\n";
$message .= "Content-Type: $anexo_type\n";
$message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n";
$message .= "Content-Transfer-Encoding: base64\n\n";
$message .= "$codificado_split\n";
}
else { $erro = "Não foi possivel abrir o Arquivo $chave: $arq_nome";
$ABORT = TRUE; // $ABORD = TRUE significa que o script ira parar neste ponto !
}
}
else {
$erro = "O Arquivo $chave Não Exite: $arq_nome";
$ABORT = TRUE;
}

}
}

$message .= "--$data--\r\n";

$topo = "MIME-Version: 1.0\n";
$topo .= "From: <$de>\r\n";
$topo .= "Content-type: multipart/mixed; boundary=\"$data\"\r\n";


$mensagem = mail($para, $assunto, $message, $topo);
if ($mensagem) {
$erro = "Mensagem enviada!";

} else {
$erro = "O envio da mensagem falhou!";
}

}else{

$erro = "Você deixou um dos campos do formulário vazio!!";

}

}else{

$erro = "O arquivo deve ter no máximo 2MB !! Desculpe!!";

}

}
?>

<!-- Código HTML do Script em PHP de enviar arquivos em ANEXO ! deve esta junto com o código em PHP acima ! -->

<table border="0" align="center" cellpadding="0" cellspacing="0" ><br>

<!-- Quando enviar um aquivo o form tem que ter este enctype= -->

<form method="post" enctype="multipart/form-data" action=""> <br>
<tr>
<td colspan="2"> <div align="left"><strong>
ANEXO

<!-- Para permitir que qualquer pessoa mude os e-mails de origem e destino mude o type de hidden dos imputs
do name="de" e name="para" e do name="assunto" para text e mude os value para " " -->

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="hidden"name="acao" value="anexar">
<input type="hidden" name="de" size=40 value="meuemail@email.com">
<input type="hidden"name="para" size=40 value="meuemail@email.com">
<input type="hidden" name="assunto" size=40 value="Assunto">

</strong></div></td>
</tr>
<tr>
<td colspan="2"><div align="center"><? echo $erro; // Aqui aparecera as msg de erro caso ocorra erro !! ?></td>
</tr>
<tr>
<td width="115"> </td>
<td width="303">Obs.: O arquivo deve
ter no máximo 2MB!</b></font></td>
</tr>
<tr>
<td width="115">Arquivo:
</td>
<td width="303"><input type="file" name="anexo">
</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="submit" type="submit" value="Enviar">
<input name="reset" type="reset" value="Limpar" >
</td>
</tr></form>
</table>
e essa e alinha 72:
$mensagem = mail($para, $assunto, $message, $topo);

me ajudem por favor!!

Link para o comentário
Compartilhar em outros sites

  • 0
Este script está funcionando perfeitamente, fiz o teste em meu servidor web. wink.gif

nossa cara muitu abrigado!! já que você falou que estava dando certo, resolvi testar de todas as maneiras , e não deu. contudo, resolvi mandar para meu servidor "oficial" (eu estava testando no mi@!!) assim deu certo!!

valeu mesmo!!

Tenho outra pergunta agora:

quero colocar mais dois botoes para anexar arquivos (alem desse!!).

quais as modificaçoes que eu tenho que fazer para colocar esses dois botoes adicionais?

obs: não sei nada de php...

valeu biggrin.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...