Ir para conteúdo

Arquivado

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

Hukers

Retornando mensagem incorreta

Recommended Posts

Bom dia, aqui estou eu novamente com mais um problema..

No caso é em upload de imagens, em vez de retornar o icone de "sucess" e a mensagem certa, ele retorna isso:
R6lTual.png

Pode ser alguma coisa boba que estou fazendo, mas não estou conseguindo resolver.

Vou deixar o if que em que ele retorna o erro ou sucesso.

	$addr = gethostbyaddr($_SERVER['REMOTE_ADDR']);
 
	$log = fopen('script.log', 'a');
	fputs($log, ($error ? 'FAILED' : 'SUCCESS') . ' - ' . preg_replace('/^[^.]+/', '***', $addr) . ": {$_FILES['photoupload']['name']} - {$_FILES['photoupload']['size']} byte\n" );
	fclose($log);

	if ($error) {
		$result['result'] = 'failed';
		$result['error'] = utf8_encode($error);
	}
	
	else
	{
		$result['result'] = 'success';
		$result['size'] = "Upload realizado com sucesso !";
		// Grava informações no banco
mysql_query("use $dbname");
mysql_query("INSERT INTO $banco (id,id_imovel,imagem,thumb) VALUES ('null', '$id', '/fotos/g/$nome_foto', '/fotos/p/$nome_thumb')");
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

já pensou que no seu css/html pode ter colocado o nome da imagem errado?

O png que é a imagem de erro pode estar com o nome assim:

ok.png

ao invés de erro.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

já pensou que no seu css/html pode ter colocado o nome da imagem errado?

O png que é a imagem de erro pode estar com o nome assim:

ok.png

ao invés de erro.png

Sim, vou lhe mandar uma print do nome da imagem e o pedaço do código CSS, creio eu que seja alguma coisa neste código que passei ai encima..

(No caso já alterei para success nos dois lugares, um pequeno erro de inglês) --'

pd1yE7C.png

#images-list li.file.file-success
{
	background-image:		url(assets/sucess.png);
}
#images-list li.file.file-failed
{
	background-image:		url(assets/failed.png);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem mesmo que retornar esse JSON? Talvez o plugin JavaScript espere outro tipo de retorno ou outras informações, e como não encontra, exibe erro... ? Sem contar que o "size" está com uma mensagem?? Não está errado isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites
if ($error) {

Esse if sempre retornará como verdadeiro, já que no script a variável sempre existirá, logo:

if ($error == 'FAILED') {

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem mesmo que retornar esse JSON? Talvez o plugin JavaScript espere outro tipo de retorno ou outras informações, e como não encontra, exibe erro... ? Sem contar que o "size" está com uma mensagem?? Não está errado isso?

Opa Anderson, mesmo caso do último que me ajudou, código não é meu, no caso pelo o que entendi, o size seria a mensagem mostrada, pois ele apenas retorna erro na mensagem, a imagem é gravada com sucesso, entendes?

Compartilhar este post


Link para o post
Compartilhar em outros sites
if ($error) {

Esse if sempre retornará como verdadeiro, já que no script a variável sempre existirá, logo:

if ($error == 'FAILED') {

Obrigado mas, não resolveu, como posso dizer, o script funciona normalmente, apenas não mostra a mensagem correta, é estranho isso..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado mas, não resolveu, como posso dizer, o script funciona normalmente, apenas não mostra a mensagem correta, é estranho isso..

Sim eu entendi, você não tem ideia de como a coisa funciona, só copia/cola e torce pra funcionar, bem normal na área de T.I. isso.

Outro ponto é que seu script na realidade se for resumido ao que você passou, não está retornando nada, provavelmente você deva dar echo em alguma variável para que o JS entenda se tudo ocorreu bem ou não, mas ai tem que analisar o JS que você está usando para isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim eu entendi, você não tem ideia de como a coisa funciona, só copia/cola e torce pra funcionar, bem normal na área de T.I. isso.

Outro ponto é que seu script na realidade se for resumido ao que você passou, não está retornando nada, provavelmente você deva dar echo em alguma variável para que o JS entenda se tudo ocorreu bem ou não, mas ai tem que analisar o JS que você está usando para isto.

Na realidade estou tentando entender o que está acontecendo, mas este é um código muito antigo e não foi feito por mim.. bom, estou iniciando agora na programação "web", posso enviar por MP os códigos que estão sendo utilizados nesta "função"? Ou se puder me indicar algum vídeo ou coisa parecida para eu tentar resolver?

Mais uma vez obrigado pela ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso dai deve estar sendo disparado com um JS, esse é o ponto a ser analisado... pois se ele espera um json, você não está devolvendo nada, ai é de se esperar que algo não funcione...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma pesquisada e uma analisada melhor no código e tentar descobrir o que está conseguindo, caso funcionar, posto minha solução aqui, agradeço a todos que tiraram um tempo para ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia senhores, estava analisando o script, e encontrei esse código, como disse, estou iniciando.. Creio que essa é a parte que me interessa e que não estou "devolvendo" corretamente.

fileComplete: function(file, response) {
		this.options.processResponse || this
		var json = $H(JSON.decode(response, true));
		if (json.get('result') == 'success') {
			file.element.addClass('file-success');
			file.info.set('html', json.get('size'));
		} else {
			file.element.addClass('file-failed');
			file.info.set('html', json.get('error') || response);
		}
	},
		onComplete: function(file, response) {
			this.log('Completed upload "' + file.name + '".', arguments);
			this.currentText.set('html', 'Upload completo!');
			this.currentProgress.start(100);
			(this.options.fileComplete || this.fileComplete).call(this, this.finishFile(file), response);
		},

Só estou confuso pois a chamada desse Script é em outro arquivo ainda..
(Desculpem minha ignorância se estou fazendo algum erro muito óbvio, mas estou estudando aos poucos, apenas preciso resolver isso)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Faça debug do código até achar onde está o problema.

Altere a função fileComplete para ficar como o código abaixo. Depois, no Chrome ou no Firefox, abra o console de desenvolvedor (F12), vai na aba "Console", e então teste o upload para ver o que aparece no console.



fileComplete: function(file, response) {
console.info("a", response);
this.options.processResponse || this
var json = $H(JSON.decode(response, true));
console.info("b", json);
console.info("c", json.get("result"));
if (json.get('result') == 'success') {
// restante do código...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, alterei o código e fiz dois testes. Um com uma imagem "forçando" dar erro, e um com uma imagem que seria para dar certo, no console não está acusando nenhum erro, a príncipio..

FancyUpload2.js:262 Added 1 files, now we have (891813 bytes).
FancyUpload2.js:262 Iniciar upload de "foto1768 (1).jpg".
FancyUpload2.js:262 Upload iniciado.
FancyUpload2.js:262 Iniciando upload "foto1768 (1).jpg".
FancyUpload2.js:262 Completed upload "foto1768 (1).jpg".
FancyUpload2.js:262 Completo todos os arquivos, 891813 bytes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não apareceu nenhuma informação das funções console.info que foi adicionado... parece que a função fileComplete nem foi executada!? Faça debug da função onComplete para saber o que funciona nela e o que não funciona, pois é ela que está chamando a fileComplete...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda de todos, acabei fazendo uma "gambiarra", como esta função não vai ser muito utilizada, acabou por dando certo, dei um echo mostrando se deu certo ou não, e o ícone deixei padrão. Vou continuar estudando o código para realmente resolver, mas a princípio está funcionando corretamente!

Mais uma vez, obrigado a todos pela disposição de tempo e pela ajuda!

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.