Ir para conteúdo

POWERED BY:

Arquivado

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

Rafa Santos

[Resolvido] Alterar nome do arquivo ao fazer upload

Recommended Posts

Olá,

 

Possuo um script de Upload usando o AspSmartUpload e gostaria de mudar o nome do arquivo no ato do Upload.

 

Exemplo:

Eu quero fazer o upload do arquivo abacaxi.jpg mas quero que ele fique no server com o nome 12145125.jpg

 

A intenção disto é evitar sobrescrever arquivos já existentes na pasta de uploads.

 

Estes arquivos podem ser texto, pdf ou fotos, por tanto, não estou disposto a usar as propriedades de File Object.

 

 

Ah, é importante observar que eu não quero recuperar o nome do arquivo, mas sim altera-lo, inclusive no server. Se por algum acaso não tiver como fazer isso pelo componente AspSmartUpload mas tiver como manipular o arquivo no servidor de alguma outra forma, também acho interessante, mas não sei como faze-lo.

 

Grato se alguem puder ajudar!

 

Att,

Rafael Santos

Compartilhar este post


Link para o post
Compartilhar em outros sites

É o código básico do SmartUpload...

 

'  *********
   Dim mySmartUpload
   Dim intCount
		
'  Object creation
'  ***************
   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
   mySmartUpload.Upload

'  Save the files with their original names in a virtual path of the web server
'  ***************************************************************************
*
   intCount = mySmartUpload.Save("anexos")
   ' sample with a physical path 
   ' intCount = mySmartUpload.Save("c:\temp\")

'  Display the number of files uploaded
'  ************************************
   'Response.Write(intCount & " arquivo(s) salvos no servidor.")
   'Response.Write("<BR>Clique <a href=""email_buscar.asp"">aqui</a> para voltar")
   
	For each file In mySmartUpload.Files
		If not file.IsMissing Then 
			session("numero") = session("numero")+1
			valor = session("numero")
			session("arquivo"&valor) = file.FileName
		End If
	Next  
	
	response.redirect("email_anexar.asp")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure no fórum, que existem um código, que na hora do Upload, você pode alterar o nome e da uma olhada neste link

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solucionado!

 

Gostaria de agradecer ao rapaz de cima pela ajuda. O link foi fundamental para que eu solucionasse. No entanto, achei algumas falhas na solução de cima, como a utilização errada do metodo Copy onde está usado como CopyFile assim como o Delete.

 

Segue abaixo o codigo FUNCIONANDO!

 

'  Variables
'  *********
   Dim mySmartUpload
   Dim intCount
		
'  Object creation
'  ***************
   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
   
'  Conteudo bloqueado
'  ******
   mySmartUpload.DeniedFilesList = "bmp,tif,cdr,exe,pif,psd,png,php,asp,xml,xsl,cmd,psd"

'  Upload
'  ******
   mySmartUpload.Upload

'  Save the files with their original names in a virtual path of the web server
'  ***************************************************************************
*
   intCount = mySmartUpload.Save("anexos")
   ' sample with a physical path 
   ' intCount = mySmartUpload.Save("c:\temp\")

'  Display the number of files uploaded
'  ************************************
   'Response.Write(intCount & " arquivo(s) salvos no servidor.")
   'Response.Write("<BR>Clique <a href=""email_buscar.asp"">aqui</a> para voltar")
   
	'Set renomear_arquivo = Server.CreateObject("Scripting.FileSystemObject")
	'Set arquivo = renomear_arquivo.GetFile(Server.MapPath("anexos\"&file.FileName))
	'arquivo.Copy (Replace(file.FileName,"k","aaa"), true)
	'arquivo.DeleteFile file.FileName
	'Set renomear_arquivo=Nothing
	'Set arquivo = Nothing

   	dim fs,f,novoNome
	For each file In mySmartUpload.Files
		If not file.IsMissing Then 
			
			novoNome = year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&right(file.FileName,4)
			
			set fs=Server.CreateObject("Scripting.FileSystemObject")
			set f=fs.GetFile(Server.MapPath("anexos\"&file.FileName))
			f.Copy Server.MapPath("anexos\"&novoNome&""),false
			f.Delete
			
			set f=nothing
			set fs=nothing
			
			session("numero") = session("numero")+1
			valor = session("numero")
			session("arquivo"&valor) = novoNome

		End If
	Next  
	
	response.redirect("email_anexar.asp")

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.