Ir para conteúdo

POWERED BY:

Arquivado

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

Igor FV

- Upload com 10 arquivos + validação do tamanho e tipo do arqui

Recommended Posts

Bom dia amigos, peguei esse codigo no forum imasters, no post do Dark0, testei aqui mas não funciona.

Trata-se de uma rotina que faz o uload de até 10 images com registro no bd.... alguém pode analisar se existe algo errado?

 

Nesse mesmo post, o Dark0 postou o codigo maneiro para verificar o tamanho e o tipo de arquivo que esta sendo enviado, como poderia usa-lo para verificar o tamanho e tipo de arquivo que sera enviado para os 10 campos de upload no form, adaptado ao codigo abaixo?

 

<%Dim c, f, A()Dim caminho_foto(), foto()Dim cfoto(), nome_foto()' Chamando Funções, que fazem o Upload funcionarbyteCount = Request.TotalBytesRequestBin = Request.BinaryRead(byteCount)Set UploadRequest = CreateObject("Scripting.Dictionary")BuildUploadRequest RequestBin'Conteudo binario dos arquivos enviandosfoto1	  = UploadRequest.Item("foto1").Item("Value")foto2	  = UploadRequest.Item("foto2").Item("Value")foto3	  = UploadRequest.Item("foto3").Item("Value")foto4	  = UploadRequest.Item("foto4").Item("Value")foto5	  = UploadRequest.Item("foto5").Item("Value")foto6	  = UploadRequest.Item("foto6").Item("Value")foto7	  = UploadRequest.Item("foto7").Item("Value")foto8	  = UploadRequest.Item("foto8").Item("Value")foto9	  = UploadRequest.Item("foto9").Item("Value")foto10	 = UploadRequest.Item("foto10").Item("Value")[color=#FF0000]'verifico quantas fotos tem para fazer o uploadFotoT = 0If foto1 <> "" Then	FotoT = FotoT + 1End IfIf foto2 <> "" Then	FotoT = FotoT + 1End IfIf foto3 <> "" Then	FotoT = FotoT + 1End IfIf foto4 <> "" Then	FotoT = FotoT + 1End IfIf foto5 <> "" Then	FotoT = FotoT + 1End IfIf foto6 <> "" Then	FotoT = FotoT + 1End IfIf foto7 <> "" Then	FotoT = FotoT + 1End IfIf foto8 <> "" Then	FotoT = FotoT + 1End IfIf foto9 <> "" Then	FotoT = FotoT + 1End IfIf foto10 <> "" Then	FotoT = FotoT + 1End If[/color]'Tipo de arquivo que esta sebdo enviadotipo_foto1  = UploadRequest.Item("foto1").Item("ContentType")tipo_foto2  = UploadRequest.Item("foto2").Item("ContentType")tipo_foto3  = UploadRequest.Item("foto3").Item("ContentType")tipo_foto4  = UploadRequest.Item("foto4").Item("ContentType")tipo_foto5  = UploadRequest.Item("foto5").Item("ContentType")tipo_foto6  = UploadRequest.Item("foto6").Item("ContentType")tipo_foto7  = UploadRequest.Item("foto7").Item("ContentType")tipo_foto8  = UploadRequest.Item("foto8").Item("ContentType")tipo_foto9  = UploadRequest.Item("foto9").Item("ContentType")tipo_foto10 = UploadRequest.Item("foto10").Item("ContentType")'Pasta onde as imagens serao guardadaspasta = Server.MapPath("upload/imagens_proc")' 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 dadosIf Fotot > 0 Then	'Definido parametros	c = 10	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		'Recuprando o comentario sobre a foto		A(f) = UploadRequest.Item("cfoto" & f).Item("Value")				'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),"\"))				'novo nome		novo_nome(f) = Replace(date, "/","")&Hour(time)&Minute(time)&second(time)&"_1" 		nome_foto(f) = novo_nome(f) & nome_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)	  = "upload/imagens_proc" + 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)	NextEnd If%>

SCRIPT PARA VALIDAR O TAMANHO E TIPO DE ARQUIVO:

 

<script>function verifica_extencao() {var extensoesOk = ",.gif,.jpg,.txt,.doc,.exe,.xls,.bat,.ppt,.zip,.rar,.iso,.ini,.dll";var extensao = "," + document.form1.arquivo.value.substr( document.form1.arquivo.value.length - 4 ).toLowerCase() + ",";if (document.form1.arquivo.value == ""){alert("O campo do caminho está vazio!!");return false;}else if( extensoesOk.indexOf( extensao.toLowerCase() ) == -1 ){alert( document.form1.arquivo.value + "\nNão possui uma extensão válida" );java script:location.reload();return false;}else {java script:tamanhos();} }function tamanhos() {tamanhoArqMax = 400000imagem=new Image();imagem.src=document.form1.arquivo.value;tamanho_imagem = imagem.fileSize img_tan = tamanho_imagemif (tamanho_imagem < 0){java script:tamanhos();return false;}else if (tamanho_imagem > tamanhoArqMax){alert("O tamanho do arquivo é muito grande ... "+tamanho_imagem+" Bytes!! \n Tamanho Máximo suportado : "+tamanhoArqMax+" Bytes \n São "+(tamanho_imagem-tamanhoArqMax)+" Bytes a Mais!");java script:location.reload();return false;}else { return true; }}</script>Vlw amigos...e aguardo respostas.... um abraço..

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que acontece quando tu roda ele:?

 

quais erros acontece:?

 

você leu o topico INTEIRO sobre UPLOAD SEM COMPONENTES?

 

Veja bem.. durante a discussão no mesmo topico de onde você pegou este codigo, tem uma explicação bem simples de como adicionar mais de um campo do tipo file no formulario.

 

Basta seguir aquela lógica e montar até 50 campos .. que vai funcionar sem problemas ..

 

Mas é preciso LER o topico.. senao.. fica dificil.

 

Experimente fazer o que eu postei lá

Caso não consiga, poste aqui a descrição do que acontece

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.