Ir para conteúdo

POWERED BY:

Arquivado

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

claytonprog

[Resolvido] Upload gravando com duplicidade

Recommended Posts

Pessoal! Estou com o seguinte problema:

 

Tenho uma tabela com os seguintes campos:

 

ProductName

Autor

ProductDescription

ProductFile

imagem

 

Tenho um form que digito o nome de um livro, o autor, descrição, e faço o uploas de doisa arquivos, sendo que um tem quer imagem e outro zipado.

 

Meu Form tá assim:

 

<form action="upload.asp" method="post" enctype="multipart/form-data">
		
		
<td>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
	<tr>
		<td width="121">
		<p align="right"><b>
						<font size="2" face="Verdana">Título:</font></b></td>
		<td>
						<font face="Verdana">
		<input type="text" name="titulo" size="52" ></font></td>
	</tr>
	<tr>
		<td width="121">
		<p align="right"><b>
						<font size="2" face="Verdana">Autor:   </font></b></td>
		<td>
						<font face="Verdana">
		<input type="text" name="autor" size="32" ></font></td>
	</tr>
	<tr>
		<td width="121">
		<p align="right"><b>
						<font size="2" face="Verdana">Descrição:</font></b></td>
		<td>
						<textarea name="descricao" cols="49" rows="8"></textarea></td>
	</tr>
	<tr>
		<td width="121" height="28">
		<p align="right"><b>
						<font size="2" color="#800000" face="Verdana">Imagem:</font></b></td>
		<td height="28">
						<input name="arquivo1" type="file" class="style10" size="26" /></td>
	</tr>
	<tr>
		<td width="121">
		 </td>
		<td>
						<font face="Verdana" size="2" color="#FF0000"><br>Obs: Só é permitido arquivos 
com extensões </font><font face="Verdana" size="2">.jpg</font><font face="Verdana" size="2" color="#FF0000"> 
ou .</font><font face="Verdana" size="2">gif <font color="#FF0000">e o tamanho 
						máximo do arquivo não deve ultrapassar </font>1.8 MB.</font></td>
	</tr>
	<tr>
		<td width="121">
		 </td>
		<td>
						 </td>
	</tr>
	<tr>
		<td width="121">
		<b><font face="Verdana" size="2" color="#800000">Anexar arquivo:</font></b></td>
		<td>
						<input name="arquivo" type="file" class="style10" size="26" /></td>
	</tr>
	<tr>
		<td width="121">
		<p align="right"><b><font face="Verdana" size="2" color="#800000"> </font></b></td>
		<td>
						<font face="Verdana" size="2" color="#FF0000"><br>Obs: Só é permitido arquivos 
com extensões </font><font face="Verdana" size="2">.zip, .rar</font><font face="Verdana" size="2" color="#FF0000">, </font>
						<font face="Verdana" size="2"> 
						doc</font><font face="Verdana" size="2" color="#FF0000"> 
ou .</font><font face="Verdana" size="2">pdf <font color="#FF0000">e o tamanho 
máximo do arquivo não deve ultrapassar </font>1.8 MB.</font></td>
	</tr>
</table>
<p><input type="submit" name="enviar" value="Enviar" /></p>
<p> <th width="5" align="left" valign="middle" scope="col"> </th>

 

Arquivo upload.asp

 

 

<%
Option Explicit
Response.Expires = 0
Dim objConn, objRs, strQuery, sql, verifica
Dim mySmartUpload, intCount, File, titulo, autor, descricao, arquivo, arquivo1

Set objConn =  Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.MapPath("db/downloads.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

On error Resume Next

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.AllowedFilesList = "doc,pdf,zip,rar,jpg,gif"
mySmartUpload.DeniedFilesList = "exe,bat,cab,swf,asp,aspx,htm,html,png"
mySmartUpload.MaxFileSize = 350000
mySmartUpload.Upload


		
For Each File in mySmartUpload.Files

titulo=mySmartUpload.Form("titulo")
autor=mySmartUpload.Form("autor")
descricao=mySmartUpload.Form("descricao")


 arquivo = File.FileName ' Nome do arquivo 
 arquivo1 = File.Filename   ' Nome da imagem 


Next



If Err.number <> 0 Then

Response.Write("<p><br><font face=""Verdana"" size=""2""><br><br>Um dos seguintes erros aconteceu: você tentou enviar um arquivo cuja terminação não é .doc e nem .pdf A operação foi cancelada. Por favor tente de novo. ")
response.write "<font face=""Verdana"" size=""2""><br><br><br>Você será redirecionado em 3 segundos..<br></font>"
response.write "<meta http-equiv='refresh' content='3; url=enviar_ebooks.asp'/>"

response.end

end if

		 

	strQuery = "INSERT INTO tblProducts (ProductName,Autor, ProductDescription,ProductFile, imagem) VALUES ('"&titulo&"', '"&autor&"', '"&descricao&"', '"&arquivo&"','"&arquivo1&"')"
	objRs = ObjConn.Execute(strQuery)
	intCount = mySmartUpload.Save("downloads")
				


objConn.close
Set verifica = Nothing
Set objConn = Nothing
Set ObjRs = Nothing


	 
	  response.write "<font face=""Verdana"" size=""2""><br><br><br>arquivo enviado com sucesso<br></font>"
	  response.write "<font face=""Verdana"" size=""2""><br><br><br>Você será redirecionado em 5 segundos..<br></font>"
	  response.write "<meta http-equiv='refresh' content='5; url=enviar_ebooks.asp'/>"
		  


%>

O envio dos arquivos para o servidor está OK! Problema é que na hora de gravar no banco ele está gravando o mesmo nome dos arquivos que fiz no upload na tabela.

 

Deveria ficar assim:

 

 

Titulo - Autor - Descrição - Arquivo - Imagem

 

livro - Clayton - Livro que escrevi - livro.zip - livro.jpg

 

 

Está gravando assim:

 

Titulo - Autor - Descrição - Arquivo - Imagem

 

livro - Clayton - Livro que escrevi - livro.zip - livro.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gravando o mesmo nome, pois você esta atribuindo aqui

arquivo = File.FileName ' Nome do arquivo 
arquivo1 = File.Filename   ' Nome da imagem

mas você pode renomeá-lo

 

<%
function renomear(nome)
  Set ObjetoFSO = Server.CreateObject("Scripting.FileSystemObject")
  extensao = ObjetoFSO.GetExtensionName(nome)
  dia1 = now()
  dia1 = replace(dia1,"/","")
  dia1 = replace(dia1,":","")
  dia1 = replace(dia1," ","")
  renomear = dia1&"." & extensao
  ObjetoFSO.close()
  Set ObjetoFSO = nothing
end function

'Exemplo de chamada
call renomear("image.jpg")
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu explicar melhor.

 

Estou enviando dos arquivos via upload um com extensão .zip e outro com extensão .jpg

 

tenho dois campo chamados:

 

arquivo

arquivo1

 

o campo arquivo1 enviar no formato .jpg

e o campo arquivo envia no formato .zip

 

exemplo: Eu seleciono um nome de arquivo chamado: foto.jpg e outro material.zip

 

na hora de gravar ele deve gravar na tabela assim:

 

arquivo - arquivo1

 

material.zip - foto.jpg

 

o que está acontecendo ele está gravando assim:

 

arquivo - arquivo1

 

material.zip - material.zip

 

ou seja ele está pegando apenas o nome do primeiro arquivo e gravando nos dois campos ao mesmo tempo.

 

 

Eu quero gravar no banco de dados o mesmo nome do arquivo que está sendo enviado e não renomear.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O INSERT terá que ficar dentro do FOR.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz isso e não adiantou nada, continua gravando errado!

 

veja como ficou:

 

<%
Option Explicit
Response.Expires = 0
Dim objConn, objRs, strQuery, sql, verifica
Dim mySmartUpload, intCount, File, titulo, autor, descricao, arquivo, arquivo1

Set objConn =  Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.MapPath("db/downloads.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

On error Resume Next

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.AllowedFilesList = "doc,pdf,zip,rar,jpg,gif"
mySmartUpload.DeniedFilesList = "exe,bat,cab,swf,asp,aspx,htm,html,png"
mySmartUpload.MaxFileSize = 350000
mySmartUpload.Upload


		
For Each File in mySmartUpload.Files

titulo=mySmartUpload.Form("titulo")
autor=mySmartUpload.Form("autor")
descricao=mySmartUpload.Form("descricao")


arquivo = File.FileName ' Nome do arquivo
arquivo1 = File.Filename   ' Nome da imagem

  strQuery = "INSERT INTO tblProducts (ProductName,Autor, ProductDescription,ProductFile, imagem) VALUES ('"&titulo&"', '"&autor&"', '"&descricao&"', '"&arquivo&"','"&arquivo1&"')"
  objRs = ObjConn.Execute(strQuery)
  intCount = mySmartUpload.Save("downloads")


Next



If Err.number <> 0 Then

Response.Write("<p><br><font face=""Verdana"" size=""2""><br><br>Um dos seguintes erros aconteceu: você tentou enviar um arquivo cuja terminação não é .doc e nem .pdf A operação foi cancelada. Por favor tente de novo. ")
response.write "<font face=""Verdana"" size=""2""><br><br><br>Você será redirecionado em 3 segundos..<br></font>"
response.write "<meta http-equiv='refresh' content='3; url=enviar_ebooks.asp'/>"

response.end

end if

		

  
				


objConn.close
Set verifica = Nothing
Set objConn = Nothing
Set ObjRs = Nothing


	
	  response.write "<font face=""Verdana"" size=""2""><br><br><br>arquivo enviado com sucesso<br></font>"
	  response.write "<font face=""Verdana"" size=""2""><br><br><br>Você será redirecionado em 5 segundos..<br></font>"
	  response.write "<meta http-equiv='refresh' content='5; url=enviar_ebooks.asp'/>"
		  


%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Reparei algo diferente.

 

Tira o INSERT de dentro do FOR.

 

Seu código deverá ficar assim:

titulo=mySmartUpload.Form("titulo")
autor=mySmartUpload.Form("autor")
descricao=mySmartUpload.Form("descricao")

arquivo = Empty
For Each File in mySmartUpload.Files

arquivo = File.FileName & ";" & arquivo ' Nome do arquivo

Next

arquivo = split(arquivo,";")

strQuery = "INSERT INTO tblProducts (ProductName,Autor, ProductDescription,ProductFile, imagem) VALUES ('"&titulo&"', '"&autor&"', '"&descricao&"', '"&arquivo(0)&"','"&arquivo(1)&"')"
objRs = ObjConn.Execute(strQuery)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você verificou que nesse trecho do código

você atribui o File.FileName para arquivo e arquivo1 !

 

 

arquivo = File.FileName ' Nome do arquivo 
arquivo1 = File.Filename   ' Nome da imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon! Valew mano, funcionou com essa alteração que você fez!!! Muito obrigado.

 

Aqui está código funcionando pra quem quiser precisar um dia.

 

<%
Option Explicit
Response.Expires = 0
Dim objConn, objRs, strQuery, sql, verifica
Dim mySmartUpload, intCount, File, titulo, autor, descricao, arquivo, arquivo1

Set objConn =  Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.MapPath("db/downloads.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

On error Resume Next

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.AllowedFilesList = "doc,pdf,zip,rar,jpg,gif"
mySmartUpload.DeniedFilesList = "exe,bat,cab,swf,asp,aspx,htm,html,png"
mySmartUpload.MaxFileSize = 350000
mySmartUpload.Upload


		

titulo=mySmartUpload.Form("titulo")
autor=mySmartUpload.Form("autor")
descricao=mySmartUpload.Form("descricao")

arquivo = Empty

For Each File in mySmartUpload.Files

arquivo = File.FileName & ";" & arquivo ' Nome do arquivo

Next

arquivo = split(arquivo,";")

strQuery = "INSERT INTO tblProducts (ProductName,Autor, ProductDescription,ProductFile, imagem) VALUES ('"&titulo&"', '"&autor&"', '"&descricao&"', '"&arquivo(0)&"','"&arquivo(1)&"')"
objRs = ObjConn.Execute(strQuery)

intCount = mySmartUpload.Save("downloads")



If Err.number <> 0 Then

Response.Write("<p><br><font face=""Verdana"" size=""2""><br><br>Um dos seguintes erros aconteceu: você tentou enviar um arquivo cuja terminação não é .doc e nem .pdf A operação foi cancelada. Por favor tente de novo. ")
response.write "<font face=""Verdana"" size=""2""><br><br><br>Você será redirecionado em 3 segundos..<br></font>"
response.write "<meta http-equiv='refresh' content='3; url=enviar_ebooks.asp'/>"

response.end

end if

		 

   
				


objConn.close
Set verifica = Nothing
Set objConn = Nothing
Set ObjRs = Nothing


	 
	  response.write "<font face=""Verdana"" size=""2""><br><br><br>arquivo enviado com sucesso<br></font>"
	  response.write "<font face=""Verdana"" size=""2""><br><br><br>Você será redirecionado em 5 segundos..<br></font>"
	  response.write "<meta http-equiv='refresh' content='5; url=enviar_ebooks.asp'/>"
		  


%>

Pode fechar o tópico.

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.