Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
%>
Carregando comentários...