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

Como Pegar Nome Do Arquivo Enviado Ao Site.


ibreak

Pergunta

Oi pessoal, acho que essa dúvida é sempre a de muitos usuários... fiz uma busca por este assunto mas não obtive sucesso em achar questões já respondidas aqui ou em outros fóruns.

Eu estou usando o Dundas para fazer o upload de arquivos de foto para o site. Os arquivos são renomeados no momento em que eles são enviados.

Primeiro que funciona desta maneira.

O usuário abre uma página de cadastro de notícias. Nesta página tem um campo de texto.

<input name="url" type="text" id="url" readonly>

A frente desse campo URL tem um botão enviar foto. Quando o usuário clica neste botão abre uma popup por este comando java script:

function enviarfoto() {

var width = 350;

var height = 200;

var left = 0;

var top = 0;

self.name = 'enviarfoto';

remote = open('upload.asp','site', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=yes, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');

remote.focus();

}

Nessa popup eu tenho um formulário que procura a foto no pc e em seguida a envia...

O problema está aí... Tipo a foto é enviada mas ela não é capturada pelo formulário. No momento em que a foto fosse enviada na popup, a popu deveria fechar e o nome da foto aparecer gravado no campo de texto url. Vale lembrar que a foto é renomeada no momento em que ela é enviada para o site. Como eu capturo o nome do arquivo enviado.

Para ajudar, anexei abaixo os dois códigos. O do formulário que procura a foto para enviar e a da página responsável pelo envio...

UPLOAD.ASP (FORMULÁRIO PROCURA E ENVIA FOTO)

<html>
<body>
<form method="post" action="upload2.asp" enctype="multipart/form-data">
Arquivo: <input type="file" name="arquivo">
<input type="submit" value="Enviar">
</form>
</body>
</html>
UPLOAD2.ASP (Usando Dundas)
<%
' On Error Resume Next, passa por cima de possíveis erros
'On Error Resume Next

Dim objUpload, objUploadedFile
Dim lstFiles, strPath, str1File
Dim strNome, intItem, strMsg

'Cria uma instancia do objeto Upload e atribui a variável objUpload.
Set objUpload = Server.CreateObject("Dundas.Upload.2")

' Seta a não necessidade de alteração de configurações no servidor.
objUpload.UseVirtualDir = False

'Existe a variável UseUniqueNames, que recebe valor booleano. Estando TRUE
'(default), ela vai anexar ao arquivo um número identificador. Estando FALSE,
'ela conserva o nome do arquivo original.
objUpload.UseUniqueNames = TRUE

'Deve ser utilizada antes do método 'SaveAs' utilizado logo abaixo
objUpload.SaveToMemory

'Pega algumas variaveis importantes que estão presentes no form-html que
'chama esse script
'(é fundamental que estas atribuições só sejam feitas depois de rodar o
'"SaveToMemory"
strNome = objUpload.Form("Nome")
intItem = objUpload.Form("selItems")

'Redireciona para o caminho físico onde serão guardados os docs. dependendo
'do módulo
strPath = Server.MapPath("\news1\arquivos\adm")&"\fotos"&strNome&"\"

lstFiles = ""
For Each objUploadedFile in objUpload.Files 
str1File = objUpload.GetFileName(objUploadedFile.OriginalPath)
lstFiles = lstFiles & "<li>" & str1File & "<BR>"
'' Acrescenta como prefixo ao arquivo a chave do item em questao
'entre chaves

' --- Trocamos o nome do arquivo ---
objUploadedFile.SaveAs strPath & "{"&intItem&"}_" & str1File
Next

'Limpa a instância criada na memória do servidor.
Set objUpload = nothing

' Vericamos se existe algum erro no codigo acima

If Err <> 0 Then
' Mensagem de erro
response.write "<b>Erro no envio do arquivo</b>"
Else
response.write "Arquivo gravado com sucesso com a referencia " & intItem
End If 

%>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest Visitante

Fernando Ramos, muito obrigado pela ajuda...

Fiz exatamente o que você me pediu... dei um response write na varíavel str1File e apareceu isso: 002inc-messbrasil.jpg

Vale lembrar que na hora de renomear o arquivo no servidor ele fica assim: {}_002inc-messbrasil.jpg

O nome que o response mostrou é o nome original do arquivo. Eu dei o response na última linhda do código. Bem e neste caso que o arquivo é renomeado, como proceder.

Link para o comentário
Compartilhar em outros sites

  • 0

Fernando Ramos, muito obrigado pela ajuda...

Fiz exatamente o que você me pediu... dei um response write na varíavel str1File e apareceu isso: 002inc-messbrasil.jpg

Vale lembrar que na hora de renomear o arquivo no servidor ele fica assim: {}_002inc-messbrasil.jpg

O nome que o response mostrou é o nome original do arquivo. Eu dei o response na última linhda do código. Bem e neste caso que o arquivo é renomeado, como proceder.

Para acrescentar... é nesse código da página de upload que é renomeado o arquivo.

' --- Trocamos o nome do arquivo ---

objUploadedFile.SaveAs strPath & "{"&intItem&"}_" & str1File

Next

Inclusive se alguém souber como mudar o nome por completo e não só acrescentar os sinais agradeço. Tipo nesse código ele só acrescenta isso ao nome original da foto "{}_", eu gostaria de que ele mudasse tipo pra foto1, foto2 e etc...

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...