Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

Deixar somente .DOC

Recommended Posts

Amigos!

 

Não sou muito bom com javascript, mas preciso no meu código asp para enviar curriculos, um SCRIPT que não deixar enviar arquivos além do .DOC e DOCX do CAMPO FILE, chamado de ARQUIVOCV

 

Precisaria algo que validasse e gerasse uma mensagem em innerhtml abaixo deste campo, ou uma janelinha popup informando que outro arquivo não pode ser enviado.

 

E também precisaria disso em asp também, caso o cara esteja com o javascript desabilitado.

 

 

Alguém poderia me ajudar???

 

 

Muito obrigado desde já

Deus abençoe a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém aí conseguiria por gentileza me ajudar a fazer esta proibição com javascript e no ASP????

 

Quero permitir apenas arquivos do tipo .DOC, e nenhum mais....

Tem alguma coisa pra isso, ou não é possível.

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, temos 2 casos

js - vai ter que criar uma funcao que verifica o tipo de arquivo, isso la na parte de js você arruma facil

 

asp - depende do componente usado

o componnete normalmente possui um comando que mostra o tipo de arquivo, veja no tutorial do componente pois fica mais facil, ou diga qual componente usa pro upload

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos!

 

Agradeço o retorno, mas quero ajuda aqui para uma coisa só, como usar este javascript nestes códigos que adaptei da internet....

Lembrando que tudo funciona, mas nao consigo validar com o código javascript.

 

FORM

<script type="text/javascript" src="uploadcompleto_validacao.js"></script>
<table align="center" bgcolor="#F5F5F5">
  <form name="frm" action="uploadcompleto.asp" method="post" enctype="multipart/form-data">
	<tr>
	  <td colspan="2"> </td>
	</tr>
	<tr>
	  <td width="78"><div align="center"><strong>Arquivo:</strong></div></td>
	  <td width="316"><div align="center">
		<input type="file" name="foto1" size="25" id="foto1">
		<input type="submit" name="submit" value="Enviar" onclick="return verifica_extencao(this);" />
	  </div></td>
	</tr>
	<tr>
	  <td colspan="2"> </td>
	</tr>
  </form>
</table>

FUNÇOES

<%
Sub BuildUploadRequest(RequestBin)
on error resume next

PosBeg = 1
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
boundary = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
BoundaryPos = InStrB(1, RequestBin, boundary)

Do Until (BoundaryPos = InStrB(RequestBin, boundary & getByteString("--")))

Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")

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)

If PosFile <> 0 And (PosFile < PosBound) Then
PosBeg = PosFile + 10
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))
FileName = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "FileName", FileName
Pos = InStrB(PosEnd, RequestBin, getByteString("Content-Type:"))
PosBeg = Pos + 14
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
ContentType = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "ContentType", ContentType
PosBeg = PosEnd + 4
PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
Value = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
Else
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

UploadControl.Add "Value", Value
UploadRequest.Add Name, UploadControl
BoundaryPos = InStrB(BoundaryPos + LenB(boundary), RequestBin, boundary)
Loop
End Sub

Function getByteString(StringStr)
For i = 1 To Len(StringStr)
Char = Mid(StringStr, i, 1)
getByteString = getByteString & ChrB(AscB(Char))
Next
End Function

Function getString(StringBin)
getString = ""
For intCount = 1 To LenB(StringBin)
getString = getString & Chr(AscB(MidB(StringBin, intCount, 1)))
Next
End Function
%>

 

JAVASCRIPT

<%
Sub BuildUploadRequest(RequestBin)
on error resume next

PosBeg = 1
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
boundary = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
BoundaryPos = InStrB(1, RequestBin, boundary)

Do Until (BoundaryPos = InStrB(RequestBin, boundary & getByteString("--")))

Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")

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)

If PosFile <> 0 And (PosFile < PosBound) Then
PosBeg = PosFile + 10
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))
FileName = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "FileName", FileName
Pos = InStrB(PosEnd, RequestBin, getByteString("Content-Type:"))
PosBeg = Pos + 14
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
ContentType = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "ContentType", ContentType
PosBeg = PosEnd + 4
PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
Value = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
Else
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

UploadControl.Add "Value", Value
UploadRequest.Add Name, UploadControl
BoundaryPos = InStrB(BoundaryPos + LenB(boundary), RequestBin, boundary)
Loop
End Sub

Function getByteString(StringStr)
For i = 1 To Len(StringStr)
Char = Mid(StringStr, i, 1)
getByteString = getByteString & ChrB(AscB(Char))
Next
End Function

Function getString(StringBin)
getString = ""
For intCount = 1 To LenB(StringBin)
getString = getString & Chr(AscB(MidB(StringBin, intCount, 1)))
Next
End Function
%>

RECEBE ARQUIVOS

<!--#include file="uploadfuncoes.asp" --><%
Dim c, f, A()
Dim caminho_foto(), foto()
Dim cfoto(), nome_foto()

'Chamando Funções, que fazem o Upload funcionar
 byteCount  = Request.TotalBytes
 RequestBin = Request.BinaryRead(byteCount)

Set UploadRequest = CreateObject("Scripting.Dictionary")
	BuildUploadRequest RequestBin

'Conteudo binario dos arquivos enviandos
 foto1	  = UploadRequest.Item("foto1").Item("Value")

'verifico quantas fotos tem para fazer o upload
FotoT = 0
If foto1 <> "" Then
	FotoT = FotoT + 1
End If

'Tipo de arquivo que esta sebdo enviado
 tipo_foto1  = UploadRequest.Item("foto1").Item("ContentType")

'Pasta onde as imagens serao guardadas
 pasta = Server.MapPath("imagens")

'Conecta-se ao Banco de Dados MYSQL.
'url_conexao = Server.MapPath("banco.mdb")
' set Conn = Server.CreateObject("ADODB.Connection")
'	 Conn.open "driver=MySQL ODBC 3.51 Driver;DATABASE=bd_spd;SERVER=localhost;UID=admin"'&url_conexao  

'Cadastra os dados no banco de dados
 If Fotot > 0 Then

'Definido parametros
	c = 1
	ReDim A(c)
	ReDim caminho_foto(c)
	ReDim cfoto(c)
	ReDim nome_foto(c)
	ReDim foto(c)

'Fazendo o for para insercao dos dados
 For f = 1 To FotoT

'Caminho completo dos arquivos enviados
 caminho_foto(f)	 = UploadRequest.Item("foto" & f).Item("FileName")
		
'Nome dos arquivos enviados
 nome_foto(f) = Right(caminho_foto(f),Len(caminho_foto(f))-InstrRev(caminho_foto(f),"\"))
			   
'Conteudo binario dos arquivos enviandos
 foto(f)	  = UploadRequest.Item("foto" & f).Item("Value")

'Pasta onde as imagens serao guardadas
 nome_foto(f)	  = nome_foto(f)
	   
'Pasta + nome dos arquivos
 cfoto(f)	  = "imagens/" + nome_foto(f)
	   
'Fazendo o Upload do arquivo selecionado
 if foto(f) <> "" then
			Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
			Set MyFile = ScriptObject.CreateTextFile(pasta & "/" & nome_foto(f))
			For i = 1 to LenB(foto(f))
				MyFile.Write chr(AscB(MidB(foto(f),i,1)))
			Next
			MyFile.Close
		end if

'faco o insert
'		SqlI = "Insert Into tbl_proc "_
'		& "(FotoCod, CodAnuncio, FotoNome, FotoComen) "_
'		& "Values "_
'		& "(" & Id & ", '" & Cod & "', '" & A(f) & "', '" & cfoto(f) & "') "
'		Set RsI = Conn.Execute(SqlI)
	Next
	response.write "ARQUIVOS ENVIADOS COM SUCESSO!!!"
End If
%>

 

Só quero mesmo é conseguir quando clicar no btn do form, validar com este código javascript... mas não estou conseguindo.

Mas lembro tambem que preciso colocar outra validação depois para outros campos que vou inserir com prototype.

 

Se puderem me ajudar, pois só falta acertar o javascript.

 

 

Obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

No JavaScript dê uma olhada nesse post, já em ASP depende do componente que será usado para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E informando também, primeiro gostaria de fazer uma validação de campos no form, e depois sim usar a validação de VERIFICA_EXTENSAO.

 

Ou seja:

 

1) validar campos form com o js: valida_campos

2) validar por final o tipo de arquivo do campo file com o js: verifica_extensao.

 

 

Como posso incluir estes dois no FORM para quando clicar no botão ele faça os dois, primeiro e depois o segundo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como sua duvida agora é específica de JavaScript mou movê-la para o fórum de JavaScript.

 

Movido ASP icon11.gif JavaScript / DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal

Alguém me ajuda a fazer um código em javascript para apenas isso????

 

SE for .doc ou docx

......

ELSE

retorna para o formulário ou então mostra uma alert

END IF

 

Agredeço deste já, sou um zero a esquerda com js....

Compartilhar este post


Link para o post
Compartilhar em outros sites

function ext(id){
	var campo = document.getElementById(id).value;
	var array = campo.split('.');
	var ext = array[array.length-1];
	if(ext!='doc'&&ext!='docx'){
		alert('erro');
	}else{
		alert('certo');
	}
}

Linha 1: Passamos a nossa função o id do camo file que validaremos

Linha 2: Pegamos o valor que esta nesse campo

Linha 3: Dividimos o valor em varias partes atraves do ponto, e armazenamos em um array

Linha 4: Pegamos o ultimo pedaço, aqui tem que ser o ultimo indice, por que se o usuario enviar um arquivo meu_nome-1.0.5.doc, temos a certeza que ele vai pegar a extensao do arquivo

Linha 5: Verificamos se a extensao é diferente doc ou docx

Linha 6: Se NÃO for uma das duas exibe um alerta de erro

Linha 8: Se a extensao for verdadeira exibe um alerta dizendo que esta certo, no lugar desse alerta voce deve colocar o codigo que deseija usar

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.