Ir para conteúdo

POWERED BY:

Arquivado

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

wills

[Resolvido] FSO - setar e renomear

Recommended Posts

entao usava esta função para colocar as extensoes que eram validas

 

function validar() {

var ext = new Array()
ext[0] = ".gif";
ext[1] = ".jpg";
ext[2] = ".jpeg";
ext[3] = ".doc";
ext[4] = ".htm";
ext[5] = ".pdf";
ext[6] = ".ppt";
ext[7] = ".pps";
ext[8] = ".txt";
ext[9] = ".xls";
ext[10] = ".zip";

  extensao = document.frmInserir.Arquivo.value;
  posicao = extensao.indexOf(".");
  tamanho = extensao.length;
  extensao = extensao.substring(posicao, tamanho);

valida = 0;
for (var i = 0; i < ext.length; ++i){
if (ext[i] == extensao){
   valida = 1;
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, achei muito massa essa sua função mas, não rolou aqui não... mandei um arquivo .txt e fez upload normal... só que na função deixei que apenas .psd deveria fazer upload.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como voce chamou a função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, criei a função para ela com o nome psd.

 

e chamei no bt submit como return psd();

 

mas nada...

 

cara, achei uma função para renomear novamente que, deu pau!

 

tô já desistindo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

altera as referencias a seu formulario e seu campo File

 

Inclue a função

 

function validar() {

var ext = new Array()
ext[0] = ".psd";
 
  extensao = document.NomeForm.NomeCampo.value;
  posicao = extensao.indexOf(".");
  tamanho = extensao.length;
  extensao = extensao.substring(posicao, tamanho);

valida = 0;
for (var i = 0; i < ext.length; ++i){
if (ext[i] == extensao){
   valida = 1;
}
}

if ((document.NomeForm.NomeCampo.value != "") && (valida == 0 )){
   alert("A extensão não é valida.");
   document.NomeForm.NomeCampo.focus();
} else {
   NomeForm.submit()
}
}

Em vez de um botao do tipo submit poe um do tipo Button mesmo

 

Assim

 

<input type="button" value="Inserir" onclick="validar();" name="btnInserir">

Agora ve se vai

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu já havia alterado os dados para o nome do meu form e campos...

 

mas: tenho as validações de outros campos (nome, telefone, e-mail e, este de file), por isso uso o submit...

 

entendes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

adiciona as validacoes citadas juntas a do campo file

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora não valida mais nada...

 

function validar() {
	
	if (document.frm_xhtml.txtnome.value.length < 10){
		alert ("Preencha o campo NOME corretamente!");
		document.frm_xhtml.txtnome.focus();
		return false;
	}
	if (document.frm_xhtml.txtmail.value.indexOf("@")==-1 || document.frm_xhtml.txtmail.value.indexOf('.')==-1) {
		alert ("Preencha o campo E-MAIL corretamente!");
		document.frm_xhtml.txtmail .focus();
		return false;
	}
	if (document.frm_xhtml.txttelefone.value.length < 10){
		alert ("Preencha o campo TELEFONE corretamente!");
		document.frm_xhtml.txttelefone.focus();
		return false;
	}
return true;

	var ext = new Array()
ext[0] = ".psd";

  extensao = document.frm_xhtml.arquivo.value;
  posicao = extensao.indexOf(".");
  tamanho = extensao.length;
  extensao = extensao.substring(posicao, tamanho);

valida = 0;
for (var i = 0; i < ext.length; ++i){
if (ext[i] == extensao){
   valida = 1;
}
}

	if (document.frm_xhtml.arquivo.value != "") && (valida == 0 ){
		alert("A extensão não é valida.");
	   document.frm_xhtml.arquivo.focus();
	} else {
	   frm_xhtml.submit()
	}



}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou estranho mesmo

 

volta como estava antes e me mostra como voce tentou acrescentar a function que te passei

 

que ajeito aqui

 

mostra como estava sua validação e como a chamava antes

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele tá dando erro neste linha:

 

alert("A extensão não é valida.");

 

se eu retiro essa validação que tu me passou, funfa... tentei inverter a ordem de validação e regras mas, não rolou também

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente tava faltando um espaço por algum motivo

 

mas eu alterei outras coisas

 

tenta assim agora

 

function validar() {

	var ext = new Array()
	ext[0] = ".psd";

	extensao = document.frm_xhtml.arquivo.value;
	posicao = extensao.indexOf(".");
	tamanho = extensao.length;
	extensao = extensao.substring(posicao, tamanho);

	valida = false;
	for (var i = 0; i < ext.length; ++i){
	   if (ext[i] == extensao){
		  valida = true;
	   }
	}

	if (document.frm_xhtml.arquivo.value != "") && (valida == false ){
	   alert ("A extensão não é valida.");
	   document.frm_xhtml.arquivo.focus();
	   return false;
	}

	if (document.frm_xhtml.txtnome.value.length < 10){
		alert ("Preencha o campo NOME corretamente!");
		document.frm_xhtml.txtnome.focus();
		return false;
	}
	if (document.frm_xhtml.txtmail.value.indexOf("@")==-1 || document.frm_xhtml.txtmail.value.indexOf('.')==-1) {
		alert ("Preencha o campo E-MAIL corretamente!");
		document.frm_xhtml.txtmail .focus();
		return false;
	}
	if (document.frm_xhtml.txttelefone.value.length < 10){
		alert ("Preencha o campo TELEFONE corretamente!");
		document.frm_xhtml.txttelefone.focus();
		return false;
	}

return true;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesma coisa... não valida e acusa erro neste linha: alert ("A extensão não é valida.");

 

tô com uma validação para o campo file, vou postar para tu ver... quem sabe não é mais fácil adapta-la...

 

/* validar input file */

 function onComposeSubmit() {
	var formDOMObj = document.frm_xhtml;
	if (formDOMObj.arquivo.value == "")
		alert("Selecione seu arquivo .PSD, por favor!.")
	else
		return true;
	return false;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

como está todo seu codigo de validação? achei que estava de uma forma e voce postou de outra agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah?

 

então, a validação para nome, e-mail, telefone é uma função.

 

para validar o tipo file, é uma outra.

 

que é esta juntamente com a sua:

 

function onComposeSubmit() {
	var formDOMObj = document.frm_xhtml;
	if (formDOMObj.arquivo.value == ""){
		alert("Selecione seu arquivo .PSD, por favor!.")
	}else{
		return true;
	}
var ext = new Array()
	ext[0] = ".psd";

	extensao = document.frm_xhtml.arquivo.value;
	posicao = extensao.indexOf(".");
	tamanho = extensao.length;
	extensao = extensao.substring(posicao, tamanho);

	valida = false;
	for (var i = 0; i < ext.length; ++i){
	   if (ext[i] == extensao){
		  valida = true;
	   }
	}

	if (document.frm_xhtml.arquivo.value != ""){
	   alert ("A extensão não é valida.");
	   document.frm_xhtml.arquivo.focus();
	   return false;
	}
	return false;
}

que não dá erro, mas não captura o extensão psd.

 

cara, isso aqui não seria mais fácil em JavaScript e não seria mais fácil tu me auxiliar com a renomeação dos arquivos que fazem upload?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao ta bleza para mim

 

na renomeação o que está faltando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, porque essa é a parte mais importante.

 

seguinte, euachei vários posts, vocês postaram várias coisas ae me auxliando mas, não consigo renomear o arquivo...

 

achei esta função que altera o nome do arquivo para data e hora atual... em particular achei ótima!

 

porém, ainda queria preservar o nome real do arquivo apenas adicionando a data.

 

fiz assim:

 

function renomear(nome)  
   Set ObjetoFSO = Server.CreateObject("Scripting.FileSystemObject")  
   extensao = ObjetoFSO.GetExtensionName(nome)  
   dia1 = now()  
   dia1 = replace(dia1,"/","")  
   dia1 = replace(dia1,":","")  
   dia1 = replace(dia1," ","")  
   renomear = dia1&"." & extensao  
   Set ObjetoFSO = nothing  
 end function  

set bd = Server.CreateObject("ADODB.Connection")
bd.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=e:\domains\4vconnect.com\db\dados.mdb"
bd.open	
			
			arquivos = "e:\domains\4vconnect.com\wwwroot\dundas\"	
			Set objUpload = Server.CreateObject("Dundas.Upload.2")
			objUpload.UseVirtualDir = False
			objUpload.UseUniqueNames = False
			objUpload.MaxFileSize = 300000
			objUpload.Save arquivos
	
			For Each arquivos in objUpload.Files
				Path = arquivos.Path
				NomeArquivo = objUpload.GetFileName(Path)
			Next
			
			call renomear(NomeArquivo)

			insert = "insert into clientes(nome,mail,telefone,psd,data)"
			insert = insert & "values ('" & objUpload.Form("txtnome") & "','" & objUpload.Form("txtmail") & "',"
			insert = insert &  "'" & objUpload.Form("txttelefone") & "','" & NomeArquivo & "', '"& Now() & "')"
			set inseri = bd.execute(insert)

mas, ele ignora a função e salva apenas o nome real

Compartilhar este post


Link para o post
Compartilhar em outros sites

deleta esta funcao que fez, nao vai ajudar muito da forma que ta

 

voce deve fazer o upload normal

 

so vai mudar ali no fim

 

troca

 

ASP
For Each arquivos in objUpload.Files

   Path = arquivos.Path

   NomeArquivo = objUpload.GetFileName(Path)

Next

           

call renomear(NomeArquivo)

 

Por

 

ASP
For Each arquivos in objUpload.Files

   Path = arquivos.Path

   NomeArquivo = objUpload.GetFileName(Path)

Next

   DataHora = Year(Now) & RIGHT("0" & Month(Now),2) & RIGHT("0" & Day(Now),2) & RIGHT("0" & Hour(Now),2) & RIGHT("0" & Minute(Now),2) & RIGHT("0" & Second(Now),2)

 

Set fso = CreateObject("Scripting.FileSystemObject")  

Set fileObject = fso.GetFile(Server.MapPath("NomeArquivo")  

fileObject.Name = DataHora & "_" &  NomeArquivo

Set fileObject = Nothing  

Set fso = Nothing  

 

NomeArquivo = DataHora & "_" &  NomeArquivo

 

Nao tenho como testar

 

Mas troca ai e vamos corrigindo os erros

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha ae o erro que deu....

 

Microsoft OLE DB Provider for ODBC Drivers error '800a0035'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x894 Thread 0x2694 DBC 0xfbdbff4 Jet'.

/teste/xhtmlize_upload.asp, line 24

essa line 24 é a seguinte: Set fileObject = fso.GetFile(Server.MapPath("NomeArquivo"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

poe o caminho correto ali

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz assim:

 

Set fileObject = fso.GetFile(e:\domains\4vconnect.com\wwwroot\dundas\ & NomeArquivo &)

 

e Set fileObject = fso.GetFile("e:\domains\4vconnect.com\wwwroot\dundas\" & NomeArquivo &)

 

mas deu erro

 

Microsoft VBScript compilation  error '800a03ee'

Expected ')'

/teste/xhtmlize_upload.asp, line 24

Set fileObject = fso.GetFile(e:\domains\4vconnect.com\wwwroot\dundas\ & NomeArquivo &)

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.