Ir para conteúdo

POWERED BY:

Arquivado

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

betobto

Trocar espaço por underlibe

Recommended Posts

Como eu troco o nome "arquivo upload.doc" por "arquivo_upload.doc"?

 

Preciso disso prar usar em um form que anexa curriculo, e se o curriculo da pessoa tiver salvo com espaço nao consigo abrir o link.....

 

Agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então nao é isso... pq o arquivo nao esta anexo ele vai ser anexado... tendeu....

 

você entra em um site tem o campo trabalhe conoso... ae tem o form e o envie seu curriculo....

 

é isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o componente de upload?

 

você pode fazer isso ussando FSO ou se o componente permitir renomear melhor ainda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu recupera o nome do arquivo completo e faz uma function pra nomear o file... ou seja trocar os espaços por underline, pra nomear em fso fica assim.

 

 

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.MoveFile "c:\arquivo.doc", "c:\nomeado.doc"
Set FSO = Nothing
%>

O resto vai pela sua imaginação.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

para Trocar espaço por underlibe

 

<%
var="upload correto.doc" 
' "arquivo_upload.doc
var2=Replace(var," ","_")
response.write(var2)
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou usando o upload sem componente... segue o codigo

 

envia.asp

<FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="outputFile.asp">
<table width="600" border="0" align="left" cellpadding="1" cellspacing="1" bgcolor="#FF9900">
<tr bgcolor="#FFF2CC">
<td colspan="2"><div align="center"><span class="style8">Incluir Artigo.</span></div></td>
</tr>
<tr bgcolor="#FFF8E1">
<td width="19%" valign="top" bgcolor="#FFF8E1"><div align="right"><span class="style3">Nome do artigo </span></div></td>
<td><label>
<input name="nome" type="text" id="nome" size="60">
</label></td>
</tr>
<tr bgcolor="#FFF8E1">
<td valign="top" bgcolor="#FFF8E1"><div align="right"><span class="style3">Arquivo</span></div></td>
<td><input type="file" name="blob"></td>
</tr>

<tr bgcolor="#FFF8E1">
<td bgcolor="#FFF8E1"> </td>
<td><input name="Enter" type="submit" id="Enter" value="Incluir">
<a href="novo_cursos.asp"></a>
<input name="Button" type="button" value="Voltar" onClick="java script:history.back(-1)"></td>
</tr>
</table>

</FORM>

outputFile.asp

<%

Response.Expires=0
Response.Buffer = TRUE
Response.Clear

'Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
byteCount = Request.TotalBytes
'Response.BinaryWrite(Request.BinaryRead(varByteCount))

RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

'chama a função para baixar o arquivo
BuildUploadRequest RequestBin

nome = UploadRequest.Item("Nome").Item("Value")
telefone = UploadRequest.Item("Telefone").Item("Value")
email = UploadRequest.Item("Email").Item("Value")
ramo = UploadRequest.Item("Ramo").Item("Value")
mensagem = UploadRequest.Item("Observacao").Item("Value")


contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename =Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("blob").Item("Value")

'AQUI É O SERVEROBJECT PARA TRATAR ARQUIVOS TEXTO!!!!!
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Cria e preenche o arquivo com os dados enviados
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
dim strLogPath
dim pos

pos = instrRev(Request.ServerVariables("PATH_INFO"),"/",-1)

strLogPath = left(Request.ServerVariables("PATH_INFO"),pos)
dim strpath
strPath = Request.ServerVariables("SERVER_NAME") & strLogpath
Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&""&filename)

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close

set mail = server.createobject("cdonts.newmail")
mail.from = email
'Este email deve ser válido e existir como conta de email para o domínio
mail.to = "Trabalhe Conosco - Site <contato@pwartes.com.br>"
mail.subject = "Contato do Site"

mail.Body = "Nome: " & nome & vbCrLf & _
"Email: " & email & vbCrLf & _
"Telefone: " & telefone & vbCrLf & _
"Area: " & ramo & vbCrLf & _
"Mensagem: " & vbCrLf & mensagem & vbCrLf & _
"Curriculo: http://www.molecaggio.com.br/site/emailAnexo/" & filepathname

mail.bodyformat = 1
mail.mailformat = 1
on error resume next
mail.send
if err <> 0 then
	response.write("<script>alert('Erro ao enviar email');location='default.asp'</script>") & err.description
end if
	response.write("<script>alert('Email enviado com sucesso!');location='../default.asp'</script>")
%>

<!--#include file="upload.asp"-->

upload.asp

<%

Sub BuildUploadRequest(RequestBin)
'Limite inferior
PosBeg = 1
'procura pela posição dentro de uma variável contendo bytes
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'o mesmo que MID, mas para bytes
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Obtém todos os dados dentro do limite
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))

'Variáveis objeto são colocado em um objeto dicionário
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary") 'cria um dicionário
'Pega o nome de cada objeto do form anteriro
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Verifica se o item é um arquivo
If PosFile<>0 AND (PosFile<PosBound) Then

'Pega o nome,content-type e o conteúdo do arquivo
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))

'adiciona o nome do arquivo ao dicionário
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))

'adiciona o content-type ao dicionário
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType

'Pega o conteúdo do arquivo
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else

'conteúdo do objeto
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If

'adiciona o conteúdo ao objeto dicionário
UploadControl.Add "Value" , Value

'adiciona o objeto dicionário ao dicionário principa;
UploadRequest.Add name, UploadControl

'próximo objeto
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop

End Sub

'Converte de string para byte
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function


'converte de byte para string
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem funcoes pra renomear arquivos e pode usar akela simples funcaun k postei para trocar o espaco por _

Compartilhar este post


Link para o post
Compartilhar em outros sites

só lembrando existe até uma classe para Upload, disponivel tb

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado deu certo... mas tem outro porem... e se uma pessoa mandar o arquivo com o mesmo nome????? curriculo.doc??

 

como faz pra eu colocar junto o nome da pessoal

 

ex. Betinho_Silva_curriculo.asp

 

Aguardo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu normalmente renomeio o arquivo. vinculo o arquivo enviado a um registro do banco e coloco antes do nome original o ID(código) do registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se o user colocar o nome você inclui o nome no arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

concatene o sessionid ou junte data e hora no nome do arquivo no mesmo momento em que estás trocando o espqço por underline

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa a k postei acima, funcionaperfeitamente

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.