Ir para conteúdo

POWERED BY:

Arquivado

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

locosta

Variaveis de Sessão não funciona no Chrome

Recommended Posts

Caros colegas estou com o seguinte problema tenho algumas Sessions[""] para manter o valor de algumas listas para um sistema lista que está é utilizada na inserção o problema é que quando utilizo o json para fazer upload pedida no jquery as variaveis de sessão no Chrome são perdidas.

No IE funciona normal, pelo que pude perceber o chrome carrega a pagina duas vezes.

Alguem poderia me dar uma ajuda.

Desde ja agradeço a colaboração de todos.



Pagina de UPLOAD

<!-- Preparações para o Uploadify -->
		<script type="text/javascript" src="uploadify/jquery-1.6.2.min.js"></script>
		<script type="text/javascript" src="uploadify/swfobject.js"></script>
		<script type="text/javascript" src="uploadify/jquery.uploadify.v2.1.0.min.js"></script>
		<script src="js/jquery-ui-1.8.16.custom.min.js"></script>
		<link rel="stylesheet" href="uploadify/styles/uploadify.css" type="text/css" media="all" title="all" charset="iso-8859-1" />


		<!-- Form -->
		<form id="novoArquivo" action="envio.asp" method="post">

			<div id="fileUpload">
				<input id="fileInput" name="fileInputs" type="file" />
			</div>
		</form>

		<!-- A 'mágica' -->
		<script type="text/javascript">

			//--------------------------------------------------------------------------------------------
			var respData; //Variável que armazena os dados de retorno de cada upload

			//As variáveis a seguir são alimentadas na função onComplete
			//e utilizadas na função onAllComplete
			var numArquivos = 0;			//Indica quantos arquivos foram enviados
			var nomeOriginal = new Array();	//Array com o NOME ORIGINAL de cada arquivo enviado
			var nomeArquivo = new Array();	//Array com o NOME ALTERADO de cada arquivo enviado
			var tamArquivo = new Array();	//Array com o TAMANHO de cada arquivo enviado
			var statusArquivo = new Array();//Array com o STATUS DE ENVIO de cada arquivo



			//--------------------------------------------------------------------------------------------
			//Esta função será chamada no final de todo o envio
			var onAllComplete = function(event, data) {

				//Limpa o local para apresentar os dados
				//$('#fileInfo').html('');

				
				//Apresenta as informações de cada arquivo
				for (var nf = 1; nf <= numArquivos; nf++) {
					$('#fileInfo').html(
						$('#fileInfo').html() + 
						'<h2>Arquivo ' + nf + '</h2>' + 
						'Status de envio: <b>' + statusArquivo[nf] + '</b><br />' +
						'Nome original do arquivo: <b>' + nomeOriginal[nf] + '</b><br />' +
						'Nome do arquivo gravado: <b>' + nomeArquivo[nf] + '</b><br />' +
						'Tamano do arquivo: <b>' + tamArquivo[nf] + '</b><br />' +
						'<a href="uploads/' + nomeArquivo[nf] + '">Link para o arquivo</a><br /><br />'
					);
				}

				//Esconde o botão e apresenta os dados do arquivo
				$('#fileNameList').show();
				//$('#fileUpload').hide();
			}


			//--------------------------------------------------------------------------------------------
			//Esta função será chamada no final de CADA envio
			var onComplete = function(event, queueID, fileObj, response, data) {

				respData = $.parseJSON(response)

				//Incrementa o número de arquivos
				numArquivos++;

				//Armazena o status de envio (certamente 'OK')
				statusArquivo[numArquivos] = respData.result;

				//Se não houve erro no evio, armazena os dados do arquivo nos arrays
				if (respData.result != 'ERRO') {

					nomeOriginal[numArquivos] =		respData.nomeOriginal;
					nomeArquivo[numArquivos] =		respData.nomeArquivo;
					tamArquivo[numArquivos] =		respData.tamArquivo;

				}
			}


			//--------------------------------------------------------------------------------------------
			//O link Excluir mostra novamente o botão de upload
			$('#lnkExclui').click(function(e) {
				$('#fileNameList').hide();
				$('#fileUpload').show();
				e.preventDefault;
				return false;
			});


			//--------------------------------------------------------------------------------------------
			//Preparação inicial
			$(document).ready(function() {
				//Configuração do uploadify
				$('#fileInput').uploadify({
					'uploader'		: 'uploadify/uploadify.swf',		//Handler Flash para o upload
					'script'		: 'envio.asp',						//Página a ser chamada para tratar o upload
					'cancelImg'		: 'uploadify/cancelUpload.png',		//Imagem do botão de cancelar (X)
					'auto'			: true,								//Envio se inicia ao selecionar o arquivo
					'folder'		: '',								//Pasta para envio (quem vai tratar isso é o ASP)
					'buttonText'	: 'Procurar',						//Texto do botão
					'multi'			: true,								//Permite o envio de vários arquivos
					'onComplete'	: onComplete,						//A função a ser chamada A CADA arquivo enviado (definida acima)
					'onAllComplete'	: onAllComplete,					//A função a ser chamada no fim de TODO o envio (definida acima)
					'onSelectOnce'	: function(event,data) {			//Esta função serve apenas para zerar o número de arquivos enviados
										numArquivos = 0;				// no início do envio
									  }
				});

				//Preparação para a primeira tela
				$('#fileNameList').hide();
				$('#fileUpload').show();
			});
		</script>

 


Pagina que é chamada ENVIO.ASP

 

 

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

<!--#include file="classUpload/clsUpload.asp"-->
<!--#include file="classJson/JSON_2.0.4.asp"-->

<%
	'Seleciona parametros do sistema
	Nome = Session("Usuario")
		
	Set TbCliente = Server.CreateObject("ADODB.Recordset")
		SQL = 	"Select * From	clientes Where Login = '"&Nome&"'"
		TbCliente.Open SQL, ConStrP
		
	dados = TbCliente("Caminho_Fotos")
	

	'------------------------------------------------------------------------

	'------------------------------------------------------------------------
	'Gera uma string aleatória com 'n' dígitos
	'Usado para criar um nome aleatório para o arquivo
	function fnGeraChave(n)
		dim s

		randomize
		s = ""
		while len(s) < n
			s = chr (int((57 - 48 + 1) * Rnd + 48)) + s
		wend
		fnGeraChave = s
	end function
	'------------------------------------------------------------------------

	Response.Charset="ISO-8859-1"

	dim objUp			'Instância da classe upload (definida no arquivo clsUpload.asp)
	dim objJson			'Instância da classe JSON (definida no arquivo JSON_2.0.4.asp)
	dim diretorio		'Diretório destino
	dim nomeOriginal	'Nome original do arquivo
	dim nomeArquivo		'Nome temporário do arquivo 
						'(Alterado para evitar que arquivos com mesmo nome se sobrescrevam)

	'Instancia a classe clsUpload
	set objUp = New clsUpload

	'Instancia a classe JSON (para enviar a resposta)
	Set objJson = jsObject()

	'Campos passados pelo Uploadify:
	'	- Filename	Nome original do arquivo enviado
	'	- folder	Este campo é definido pelo parâmetro 'folder' do uploadify - não estamos usando
	'	- Filedata	Os bytes (stream) que compõem o arquivo
	'	- Upload	Só achei o valor 'Submit Query' neste campo

	if objUp.fields("Filedata").length <> 0 and objUp.fields("Filedata").length & "" <> "" then

		nomeOriginal = objUp.fields("Filename").value
		nomeArquivo = fnGeraChave(20) & "_" & nomeOriginal

		'O diretório destino é definido aqui, como pasta filha 'uploads' da pasta atual
		diretorio = "D:\web\localuser\boadicatere\www\fotos_imoveis\temp\"

		'Salva o arquivo (Lembre-se de dar direito de escrita para o usuário IUSR!)
		objUp.fields("Filedata").saveAs(diretorio & nomeArquivo)
		
		
		
		'<<<<<<<<<<<<<<  MANIPULA A IMAGEM  >>>>>>>>>>>>>>>
			'Declara as variáveis a serem utilizadas no script
			Dim AspJpeg, imagem
		 
			'Instancia o componente na memória
			SET AspJpeg = Server.CreateObject("Persits.Jpeg")
		 
			'Define o caminho da imagem a ser redimensionada
			imagem = "D:\web\localuser\boadicatere\www\fotos_imoveis\temp\"&nomeArquivo
		 
			'Carrega a imagem
			AspJpeg.Open imagem
		 
			'Define o novo tamanho da imagem que neste caso, definimos que ela será 50% menor que o normal.
			'AspJpeg.Width = AspJpeg.OriginalWidth / 2
			'AspJpeg.Height = AspJpeg.OriginalHeight / 2
		
			' Especifica o tamanho da imagem
			AspJpeg.Width = 593 'Jpeg.OriginalWidth / 2
			AspJpeg.Height = 445 'Jpeg.OriginalHeight / 2
			' Comprime o arquivo da imagem reduzindo seu tamanho
			AspJpeg.Quality = 50
		 
			'Esse método é opcional, usado para melhorar o visual da imagem.
			AspJpeg.Sharpen 1, 150
			
			'Marca D'agua
            AspJpeg.Canvas.DrawPNG 10, 10, "D:\web\localuser\boadicatere\www\fotos_imoveis\"&dados&"\marca.png"							  

									  		 
			'Cria um Thumbnail e o grava no caminho abaixo.
			AspJpeg.Save "D:\web\localuser\boadicatere\www\fotos_imoveis\"&dados&"\"&nomeArquivo
		 
			'Remove as referências do componente da memória
			SET AspJpeg = Nothing

			'APAGA O ARQUIVO TEMPORÁRIO
			arquivo = "D:\web\localuser\boadicatere\www\fotos_imoveis\temp\"&nomeArquivo
			Set FSO = Server.CreateObject("Scripting.FileSystemObject")
			FSO.DeleteFile arquivo
			'************************			
		'<<<<<<<<<<<<<<  FINAL - MANIPULA A IMAGEM  >>>>>>>>>>>>>>>	

				
		'Processo de Gravação no Banco
		Set Conexao = Server.CreateObject("ADODB.Connection")
		Conexao.Open ConStrP
							
		sql2 = "Insert into imoveis_fotos (Id_Imovel, title) values ('"& Session("IdImovel") &"','"& nomeArquivo &"')"
		Conexao.Execute(sql2)
	


		'Envia os dados do arquivo via JSON (pode ser que você precise deles no outro lado)
		objJson("result") = "OK"
		objJson("nomeArquivo") = nomeArquivo
		objJson("tamArquivo") = objUp.fields("Filedata").length 
		objJson("nomeOriginal") = nomeOriginal

	else
		'Ocorreu um erro no envio
		objJson("result") = "ERRO"
	end if

	'Envia o JSON para o cliente
	objJson.flush

	'Destroi as instâncias
	Set objUp = Nothing
	Set objJson = Nothing

%>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o FF esta atualizado e tem suporte ao que você quer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o crome esta configurado corretamente e certifique-se de não estar execuntando nenhum complemento, que esteja bloqueando-o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em qual página a session é criada, mostre ai como ela esta sendo criada, e diga se por acaso ela esta sendo apagada pelo code em outras etapas da page;

Compartilhar este post


Link para o post
Compartilhar em outros sites

GALERA CONSEGUI RESOLVER O PROBLEMA. TIVE QUE PASSAR POR PARAMETRO. SEGUE A SOLUÇÃO.

 

OBRIGADO A TODOS.

 

UPLOAD

 

SOMENTE MODIFIQUEI ESSA PARTE

		//Preparação inicial
		$(document).ready(function() {
			//Configuração do uploadify
			$('#fileInput').uploadify({
				'uploader'		: 'uploadify/uploadify.swf',		//Handler Flash para o upload
				'script'		: 'envio.asp?NCli=<%=TbCliente("Caminho_Fotos")%>,<%=TbImovel("Id")%>',	//Página a ser chamada para tratar o upload
				'cancelImg'		: 'uploadify/cancelUpload.png',		//Imagem do botão de cancelar (X)
				'auto'			: true,								//Envio se inicia ao selecionar o arquivo
				'folder'		: '',								//Pasta para envio (quem vai tratar isso é o ASP)
				'buttonText'	: 'Procurar',						//Texto do botão
				'multi'			: true,								//Permite o envio de vários arquivos
				'onComplete'	: onComplete,						//A função a ser chamada A CADA arquivo enviado (definida acima)
				'onAllComplete'	: onAllComplete,					//A função a ser chamada no fim de TODO o envio (definida acima)
				'onSelectOnce'	: function(event,data) {			//Esta função serve apenas para zerar o número de arquivos enviados
									numArquivos = 0;				// no início do envio
								  }
			});

			//Preparação para a primeira tela
			$('#fileNameList').hide();
			$('#fileUpload').show();
		});
	</script>										

 

 

O ENVIO.ASP FICOU ASSIM

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

<!--#include file="classUpload/clsUpload.asp"-->
<!--#include file="classJson/JSON_2.0.4.asp"-->

<%
'Seleciona parametros do sistema
valores = Request.QueryString("NCli")
Val = Split(valores,",")

dados = Val (0)
imovel = Val (1)

'------------------------------------------------------------------------

'------------------------------------------------------------------------
'Gera uma string aleatória com 'n' dígitos
'Usado para criar um nome aleatório para o arquivo
function fnGeraChave(n)
	dim s

	randomize
	s = ""
	while len(s) < n
		s = chr (int((57 - 48 + 1) * Rnd + 48)) + s
	wend
	fnGeraChave = s
end function
'------------------------------------------------------------------------

Response.Charset="ISO-8859-1"

dim objUp			'Instância da classe upload (definida no arquivo clsUpload.asp)
dim objJson			'Instância da classe JSON (definida no arquivo JSON_2.0.4.asp)
dim diretorio		'Diretório destino
dim nomeOriginal	'Nome original do arquivo
dim nomeArquivo		'Nome temporário do arquivo 
					'(Alterado para evitar que arquivos com mesmo nome se sobrescrevam)

'Instancia a classe clsUpload
set objUp = New clsUpload

'Instancia a classe JSON (para enviar a resposta)
Set objJson = jsObject()

'Campos passados pelo Uploadify:
'	- Filename	Nome original do arquivo enviado
'	- folder	Este campo é definido pelo parâmetro 'folder' do uploadify - não estamos usando
'	- Filedata	Os bytes (stream) que compõem o arquivo
'	- Upload	Só achei o valor 'Submit Query' neste campo

if objUp.fields("Filedata").length <> 0 and objUp.fields("Filedata").length & "" <> "" then

	nomeOriginal = objUp.fields("Filename").value
	nomeArquivo = fnGeraChave(20) & "_" & nomeOriginal

	'O diretório destino é definido aqui, como pasta filha 'uploads' da pasta atual
	diretorio = "D:\web\localuser\boadicatere\www\fotos_imoveis\temp\"

	'Salva o arquivo (Lembre-se de dar direito de escrita para o usuário IUSR!)
	objUp.fields("Filedata").saveAs(diretorio & nomeArquivo)



	'<<<<<<<<<<<<<<  MANIPULA A IMAGEM  >>>>>>>>>>>>>>>
		'Declara as variáveis a serem utilizadas no script
		Dim AspJpeg, imagem

		'Instancia o componente na memória
		SET AspJpeg = Server.CreateObject("Persits.Jpeg")

		'Define o caminho da imagem a ser redimensionada
		imagem = "D:\web\localuser\boadicatere\www\fotos_imoveis\temp\"&nomeArquivo

		'Carrega a imagem
		AspJpeg.Open imagem

		'Define o novo tamanho da imagem que neste caso, definimos que ela será 50% menor que o normal.
		'AspJpeg.Width = AspJpeg.OriginalWidth / 2
		'AspJpeg.Height = AspJpeg.OriginalHeight / 2

		' Especifica o tamanho da imagem
		AspJpeg.Width = 593 'Jpeg.OriginalWidth / 2
		AspJpeg.Height = 445 'Jpeg.OriginalHeight / 2
		' Comprime o arquivo da imagem reduzindo seu tamanho
		AspJpeg.Quality = 50

		'Esse método é opcional, usado para melhorar o visual da imagem.
		AspJpeg.Sharpen 1, 150

		'Marca D'agua
           AspJpeg.Canvas.DrawPNG 10, 10, "D:\web\localuser\boadicatere\www\fotos_imoveis\"&dados&"\marca.png"							  


		'Cria um Thumbnail e o grava no caminho abaixo.
		AspJpeg.Save "D:\web\localuser\boadicatere\www\fotos_imoveis\"&dados&"\"&nomeArquivo

		'Remove as referências do componente da memória
		SET AspJpeg = Nothing

		'APAGA O ARQUIVO TEMPORÁRIO
		arquivo = "D:\web\localuser\boadicatere\www\fotos_imoveis\temp\"&nomeArquivo
		Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		FSO.DeleteFile arquivo
		'************************			
	'<<<<<<<<<<<<<<  FINAL - MANIPULA A IMAGEM  >>>>>>>>>>>>>>>	


	'Processo de Gravação no Banco
	Set Conexao = Server.CreateObject("ADODB.Connection")
	Conexao.Open ConStrP

	sql2 = "Insert into imoveis_fotos (Id_Imovel, title) values ('"& imovel &"','"& nomeArquivo &"')"
	Conexao.Execute(sql2)



	'Envia os dados do arquivo via JSON (pode ser que você precise deles no outro lado)
	objJson("result") = "OK"
	objJson("nomeArquivo") = nomeArquivo
	objJson("tamArquivo") = objUp.fields("Filedata").length 
	objJson("nomeOriginal") = nomeOriginal

else
	'Ocorreu um erro no envio
	objJson("result") = "ERRO"
end if

'Envia o JSON para o cliente
objJson.flush

'Destroi as instâncias
Set objUp = Nothing
Set objJson = Nothing

%>

 

 

MAIS UMA VEZ OBRIGADO A TODOS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz, a solução de passar o parâmetro pela tag 'script' foi a solução para mim também! Muito obrigado locosta!

 

Para quem está procurando o código completo, segue o link para download dos arquivos:

 

Upload de múltiplos arquivos com JQuery e ASP

 

E para quem precisa recortar a foto após upload com ASP, pode usar esse outro exemplo também.

 

JCrop e ASP: Como cortar fotos usando JQuery

 

Esses 2 exemplos me ajudaram demais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente ficou bem funcional o code o link que deu sobre Upload de múltiplos arquivos com JQuery é fantástico...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tenho um bacana aqui de múltiplos downloads que da até para renomear antes de enviar, tudo sem refresh na tela depois vou postar no lab. de scripts, esse ai do Uploadify tb é muito bacana.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho um que você pode fazer vários uploads renomear e tem a função de cortar a imagem se quiser, com uma progressbar de progresso

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.