Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelocardoso

Upload com AspSmartUpload

Recommended Posts

Pessoal! - HELP!!!!

 

Estou aqui postando sobre algo que está me dando muita dor de cabeça!

Pois já estou á mais de duas semanas testando e me quebrando para fazer este script funcionar..........

 

Primeiramente vejam meu arquivo FORM:

<form action="smartupload.asp" method="post" enctype="multipart/form-data" name="form1">  <table width="100%"  border="0" cellspacing="0" cellpadding="0">	<tr> 	  <td width="13%">Nome:</td>	  <td width="87%"><input name="rh_nome" type="text" id="rh_nome"></td>	</tr>	<tr> 	  <td>Email:</td>	  <td><label> 		<input name="rh_email" type="text" id="rh_email">		</label></td>	</tr>	<tr> 	  <td>Arquivo:</td>	  <td><label> 		<input name="rh_arquivo" type="file" id="rh_arquivo">		</label></td>	</tr>	<tr> 	  <td> </td>	  <td> </td>	</tr>	<tr>	  <td> </td>	  <td><label>		<input type="submit" name="Submit" value="Enviar">		</label></td>	</tr>  </table></form>
Agora segue o arquivo que faz o upload do arquivo FILE do FORM, e a parte do CDONTS que envia o email para mim?

 

<%' Coloque um número grande para o tempo de finalização do script, pois o upload pode demorar alguns minutos. Se o servidor estiver com o tempo baixo, pode haver erro no uploadServer.scripttimeout = 10000' Caso houver algum erro o código vai prosseguir até o final. Isso evita que seja mostrada aquela página de erro padrão do Internet ExplorerOn Error Resume Next' Aqui criamos uma instância do objeto do ASP Smart UploadSet Upload = Server.CreateObject("ASPSmartUpload.SmartUpload")' Aqui criamos uma lista dos formatos de arquivos que poderão ser enviadosUpload.AllowedFilesList = "doc"' Aqui configuramos o tamanho máximo de cada arquivo enviado em bytesUpload.MaxFileSize = 1000000' Aqui configuramos o tamanho total para os arquivos enviados. Todos os arquivos juntos não podem passar deste tamanhoUpload.TotalMaxFileSize = 4000000' Aqui é efetuado o envio dos arquivosUpload.Upload' Selecionamos cada arquivo que foi submetido do formulárioFor each File in Upload.Files' Aqui checamos se o tamanho dele é maior que 0 byte. Isso é necessário pois se a pessoa submeter o formulário com o endereço do arquivo errado, será criado umIf File.Size > 0 ThenUpload.Save("arq-curriculos")'Recuperamos agora os campos do formulário		RH_Nome = Replace(Upload.Form.Item("rh_nome"),"'","")		RH_Email = Replace(Upload.Form.Item("rh_email"),"'","")		RH_Arquivo = Upload.Form.Item("rh_arquivo")'Criando conexão com o CDONTS para enviar mensagens	Set eObjMail1 = Server.CreateObject("CDONTS.NewMail")	Set eObjMail2 = Server.CreateObject("CDONTS.NewMail")'Mensagem Padrão - Ao Destinatário		  Destinatario = "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">"		  Destinatario = Destinatario & "<html>"		  Destinatario = Destinatario & "<head>"		  Destinatario = Destinatario & "</head>"		  Destinatario = Destinatario & "NOME: "&RH_Nome&"<br>"		  Destinatario = Destinatario & "EMAIL: "&RH_Email&"<br>"		  Destinatario = Destinatario & "<br>PEGUE O CURRICULO QUE ESTÁ ATACHADO!"		  Destinatario = Destinatario & "<body>"		  Destinatario = Destinatario & "</body>"		  Destinatario = Destinatario & "</html>"'Configuração do CDONTS, para envio da mensagem strMsg01	 eObjMail1.To = "SMARTUPLOAD <teste@ig.com.br>"	 eObjMail1.From = RH_Email	 eObjMail1.Subject = "[ Cadastro de Curriculo ]"	 eObjMail1.Importance = 2	 eObjMail1.BodyFormat = 0	 eObjMail1.MailFormat = 0	 eObjMail1.AttachFile	 eObjMail1.Body = Destinatario	 eObjMail1.Send'Mensagem de Auto-Resposta - Ao Remetente		  Remetente = "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">"		  Remetente = Remetente & "<html>"		  Remetente = Remetente & "<head>"		  Remetente = Remetente & "</head>"		  Remetente = Remetente & "<h6>TESTE DE UPLOAD COM SMARTUPLOAD</h6>"		  		  Remetente = Remetente & "<body>"		  Remetente = Remetente & "</body>"		  Remetente = Remetente & "</html>"'Configuração do CDONTS, para envio da mensagem strMsg02	eObjMail2.To = RH_Email	eObjMail2.From = "SMARTUPLOAD <teste@ig.com.br>"	eObjMail2.Subject = "[ Confirmação de Cadastro]"	eObjMail2.Importance = 2	eObjMail2.BodyFormat = 0	eObjMail2.MailFormat = 0	eObjMail2.Body = Remetente	eObjMail2.Send'Liberando recursos depois de enviada as mensagens   Set Upload = Nothing   Set eObjMail1 = Nothing   Set eObjMail2 = Nothing		 Set SQL = Nothing'Redirecionamento após o envio total da mensagem'   Response.Redirect "smartupload_form.htm"'Caso for um arquivo inválido, ou seja, o tamanho dele for igual a zero então aparecerá a mensagem e em seguida terminamos a condição. Else	Response.Write "O arquivo enviado é inválido" End if'Caso mais de um arquivo tenha sido enviado, enviamos o sistema para o próximo. Next'Se houver algum erro será exibida essa mensagem e a descrição do erro If Err Then	Response.Write "Houve um erro: " & Err.Description End if'Aqui destruímos a instância do objeto ASP Smart Upload para não haver, casualmente, travas no sistema e outros erros Set Upload = Nothing%>
Pessoal, tudo funciona!

Menos quando vou olhar no meu Outlook, quando recebo a mensagem de email que me foi enviada, absolutamente recebo a mensagem, mas nada do anexo na mensagem!

 

Podem me ajudar a selecionar oque tem de errado?

Pois quero ANEXAR através do FORM um currículo em WORD atachado na mensagem de email!

Pois já tentei de várias maneiras, mas não consegui!

 

ME ajudem, pois sou leigo em UPLOAD e ATACHAMENTO DE ARQUIVOS COM O CDONTS para ENVIAR POR EMAIL?

 

Aguardo ajuda de todos que puderem me dar ajuda!.

Obrigado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

CARO EXPLORER E COLEGAS!

 

Se puderem me ajudem, pois tudo está funcionando, pois o script está legal.....

Grava e envia o email, mas só que não envia o arquivo atachado por email...

 

 

EXPLORER,

SE sabe como fazer me ajuda MANO!

Pois já estou mais de duas semanas, e nada!,....

 

Me passe o código, como devo fazer...

Me ajude a solucionar este problema.

 

Tentei fazer oque disse mas não sei,

Me passe o código!, por gentileza, pois só consegui fazer isso daí.......

 

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que designar o anexo na propriedade AttachFileeObjMail1.AttachFile ("C:\inetpup\wwwroot\uploads\meuarquivoanexo.jpg")oueObjMail1.AttachFile (Server.MapPath("/uploads/meuarquivoanexo.jpg"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá ARR

 

 

Fiz oque você falou, e fiz assim:

eObjMail1.AttachFile ("c:\inetpub\wwwroot\arq-curriculos\&NomeDoArquivoFile&")

 

E me dá este ERRO!

HOUVE UM ERRO: 006~ASP 0174~Invalid Path Character(s)~An invalid '/' or '\' was found in the Path parameter for the MapPath method.

 

Será que alguem pode me ajudar, com o código do upload PRONTO E FUNCIONANDO, pois já estou há mais de três semanas e não saio do lugar com este ATTACH FILE?

 

Já estou até desanimado....

Please!

Me ajudem....

 

COLEGAS, ME MANDEM O SEGUNDO CÓDIGO PRONTO FUNCIONANDO, PoR GENTILEZA!

Pois não quero largar de mão este TESTE, sem conseguir fazer funcionar para mais tarde quando precisar, já sei como usar...

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou RECORRER A TI AALVES!

 

Será que consegue me ajudar neste exemplo que postei, mas que não está atachando o arquivo depois de feito o upload do arquivo!

 

Até recebo a mensagem no meu email tudo certinho, mas ele nao me traz o arquivo que foi uploadiado, pois quer arrumar um jeito de atachar ele, pois já fiz oque me disseram, mas não tive exito!

 

Será que não consegue me postar um exemplo de como fazer isso, mas que esteja funcionando.

Me ajuda, pois eu não sei mesmoooooooooo...

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mrs...repare na sintaxe correta da propriedade de anexar arquivo:--objMsg.AttachFile FilePath_Namerepare como você está usando--objMsg.AttachFileperceba q falata o FilePath_Name... o caminho completo do arquivo!!! o q foi passado pelo nosso amigo foi somente um exemplo...eObjMail1.AttachFile ("c:\inetpub\wwwroot\arq-curriculos\&NomeDoArquivoFile&")você tem q substituir o c:\inetpub\etc.\etc... pelo caminho onde está o arquivo no seu servidor, manjou!!!! pq???? pq, no caso acima, você está gravando primeiro o arquivo no disco do seu servidor, depois anexa ele no E-MAIL... para pegar o caminho do arquivo, você tem q saber 2 coisas:1. o caminho raiz do seu site (q você pode pegar usando o comando Server.MapPath("/") )2. onde você está gravando o arquivo no servidor... em q pasta a partir do seu raiz... (/anexo/novos/arquivo.doc) ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá SKA SKA!

 

Estou aqui novamente para dizer como fiz: veja só:

arquivo1 = "http://www.teste.com.br/upload/arq-curriculos/"

arquivo2 = File.FileName

arquivo3 = arquivo1 & arquivo2

'Response.Write arquivo3 'testei com response e me mostra o caminho e o nome do arquivo

'Response.End

eObjMail1.AttachFile arquivo3 'mas não me anexa o arquivo quando vejo no email

 

Mas nada aconteceu, pois ainda não anexa o arquivo no email!

Acho que deve ter erro no código do upload?

 

PODE ME AJUDAR ?????

Já até estou pensando em desistir, pois não sei como fazer....

Não pensava que era tão dificil....

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ainda está confundindo o caminho virtual com o caminho físico.Você precisa indicar o caminho FÍSICO do arquivo. Caminho fisico é o local do disco onde ele está gravado: C:\algumacoisa\seusite\arquivo.txt.O script não tem acesso ao arquivo pelo http.Se você não sabe a estrutura de diretórios do servidor pode usar o mappath.arquivo3 = Server.MapPath("/upload/arq-curriculos/") & "\" & File.FileNameeObjMail1.AttachFile Arquivo3

Compartilhar este post


Link para o post
Compartilhar em outros sites

CARO ARR

 

 

Agora não só aprendi, mas como também graças aos colegas conseguir desvendar este script que já estava me matando....

 

Mas valeu a pena!

Pois não há vitória sem luta.

 

Pelo menos tentei, e tentei bastante sozinho!

Pelo menos agora eu já tenho este conhecimento, na CAXOLA!

 

MAS AGORA GOSTARIA DE FAZER MAIS UMA COISA NESTE SCRIPT?

VEjam só:

 

Após GRAVAR e ENVIAR o arquivo para o servidor, não teria como fazer algum código para depois de enviar o ATACH deletar este arquivo do servidor , para não ir acumulando curriculos no diretorio.

 

Conseguem me dar uma luz????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso se faz com FSO.

 

Coloque no final do arquivo:

 

<%

dim fs

Set fs=Server.CreateObject("Scripting.FileSystemObject")

if fs.FileExists(Arquivo3) then

fs.DeleteFile(Arquivo3)

end if

set fs=nothing

%>

 

Para quem está começando uma boa referência sobre FSO (e ASP básico) : http://www.w3schools.com/asp/asp_ref_filesystem.asp

 

Outra boa dica é o curso de ASP do Marcelo: http://forum.brclube.net/index.php?showforum=294

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.