Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3
Sexo: Masculino

Upload e envio de arquivos com phpMailer

30-04-2012 16:04

Pessoal, estou tentando fazer um formulário que upe um arquivo pra um determinado diretório e em seguida mande em aneo através do PHPMailer. Depois de muitas tentativas, empaquei aqui:

<? header("Content-Type: text/html; charset=ISO-8859-1",true); function limpaNome($str){ $caractere = array("/[aáâãàä]/","/[eéêèë]/","/[iíîìï]/","/[oóôõòö]/","/[uúûùü]/","/[çc]/"); $substituir = array("a","e","i","o","u","c"); ################################################################## //$palavras = strtolower(trim($_POST["palavras"])); $str = mb_strtolower(trim($str)); echo($str); $str = preg_replace($caractere,$substituir,$str); $str = preg_replace("/[^a-z0-9_\.\- ]/","",$str); $str = preg_replace("/\s+/","-",$str); return $str; } $nome = $_POST['nome']; $email = $_POST['email']; $telefone = $_POST['telefone']; $mensagem2 = $_POST['mensagem']; $arquivo = $_FILES['arquivo']['name']; $novoNome = "Arquivo".limpaNome($arquivo); $arquivo_atual= "uploads/".$novoNome; move_uploaded_file($_FILES['arquivo']['tmp_name'],$arquivo_atual); $emailEnviar = array("email@email.com"); $nomeEnviar = ""; // para formulário de contato deixar em branco $userName = "dominio@mail.com.br"; $senha = "123"; $host = "meuhost.com.br"; $titulo = "titulo da mensagem"; $msgTexto = "mensagem que vai aparecer se o servidor não aceitar html"; $mensagem = '<div align="center"><table width="43%" border="1" cellspacing="0" cellpadding="7"> <tr bgcolor="#E0E0E0"> <td colspan="2" align="center"><strong>Título</strong></td> </tr> <tr bgcolor="#F0F0F0"> <td><B>Nome: </B></td> <td>'.$nome.'</td> </tr> <tr bgcolor="#E0E0E0"> <td><B>E- Mail: </B></td> <td>'.$email.'</td> </tr> <tr bgcolor="#F0F0F0"> <td><b>Telefone: </b></td> <td>'.$telefone.'</td> </tr> <tr bgcolor="#E0E0E0"> <td height="71" ><b>Mensagem: </b></td> <td>'.$mensagem2.'</td> </tr> </table></div>'; require_once('../class/class.phpmailer.php'); $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP(); // telling the class to use SMTP try{ $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = $host; // sets GMAIL as the SMTP server $mail->Port = 587; $mail->Username = $userName; // GMAIL username $mail->Password = $senha; // GMAIL password $mail->AddReplyTo($email, $nomeEnviar); $mail->SetFrom($email, $nomeEnviar); $mail->Subject = $titulo; $mail->AltBody = $msgTexto; $mail->MsgHTML($mensagem); for($i=0;$i<count($emailEnviar);$i++){ $mail->AddAddress(trim($emailEnviar[$i])); $mail->AddAttachment( $arquivo_atual ); $mail->Send(); $mail->ClearAddresses(); } $return = array("erro"=>0, "msg"=> "Formulário de Contato enviado com sucesso"); } catch (phpmailerException $e) { $return = array("erro"=>1, "msg"=> 'Erro ao enviar formulário. '.$e->errorMessage()); //Pretty error messages from PHPMailer } catch (Exception $e) { $return = array("erro"=>1, "msg"=> "Erro ao enviar formulário. ".$e->getMessage()); //Boring error messages from anything else! } echo json_encode($return); ?>

O problema é que nem upar o formulário consegue, ele só fala que não consigo acessar ao aruivo "Arquivo", esse nome Arquivo em maiúsculo fui eu que coloquei na função LimpaNome, eu futuramente quero fazer um unlink no formulário e colocar sempre um arquivo com mesmo nome na pasta uploads e então deletá-los quando terminar o processo.

Alguém aí pode me ajudar? Não consigo upar o arquivo e empaquei aqui.

Obrigado desde já o/
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Upload e envio de arquivos com phpMailer

30-04-2012 16:09

Teria que ver o script completo. Mesmo assim, tenta usar essa linha para o upload

if(copy($_FILES['arquivo']['tmp_name'], "fotos/".$_FILES['arquivo']['name'])) { print "arquivo enviado com sucesso<br>"; } else { print "Erro, nenhum arquivo enviado<br>"; }

Verifica se seu formulário tem o enctype="multipart/form-data", a pasta para onde vai o arquivo você altera ai no if.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3
Sexo: Masculino

Upload e envio de arquivos com phpMailer

30-04-2012 16:24

Obrigado, mas continua dando o mesmo erro, não consigo acessar o arquivo. O formulário é esse, eu mando tudo por um ajax pro php

<form id="formTrabalhe" class="contato" name="formTrabalhe" method="post" action="Javascript: void(0);" enctype="multipart/form-data"> <input type="hidden" name="val" id="val" value="1"> <fieldset class="contato" id="usuario-detalhes"> <label class="contato" for="name">Nome *</label> <input id="nome" name="nome" verify="true" msg="Digite seu Nome" placeholder="Nome completo" class="contato" type="text" /> <label class="contato" for="empresa">Telefone *</label> <input id="telefone" name="telefone" placeholder="Telefone para contato" verify="true" msg="Digite seu telefone para contatos" class="contato" type="text" /> <label class="contato" for="celular">Email *</label> <input id="email" name="email" verify="true" msg="Digite seu Email" msg2="Email incorreto" placeholder="Email" class="contato" type="text" /> <br /><br /> * Preenchimento obrigat&oacute;rio. </fieldset><!--end user-details--> <fieldset class="contato" id="usuario-mensagem"> <label class="contato" for="celular3">Coloque aqui seu pdf *</label> <input type="file" name="arquivo" id="arquivo" /> <label class="contato" for="mensagem"><br /> Sua mensagem *</label> <textarea id="mensagem" name="mensagem" verify="true" msg="É necessário digitar uma mensagem" placeholder="Mensagem" type="textArea" class="contato" /></textarea> <input id="btTrabalhe" name="btTrabalhe" value="Enviar" type="submit" class="enviar" /> <input name="acao" type="hidden" id="acao" value="enviar" /> </fieldset><!-- end user-message --> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Upload e envio de arquivos com phpMailer

30-04-2012 16:35

Por ajax não dá para enviar o arquivo diretamente. Tem alguns métodos com Flash que tem que usar para enviar o arquivo.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3
Sexo: Masculino

Upload e envio de arquivos com phpMailer

30-04-2012 17:04

Não?

Nesse caso alguém aí tem um código bem simples de upar e enviar arquivos por anexo? Tô tentando adaptar vários códigos o dia inteiro mas não consigo aqui oo
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Upload e envio de arquivos com phpMailer

30-04-2012 17:22

Para enviar o arquivo, te recomendo esse script em jQuery
Plugin-jQuery-para-upload-de-fotos-e-ar ... _5860.html
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado