Ir para conteúdo

POWERED BY:

Arquivado

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

LuisPedro

[ jQuert / AJAX ] Upload imagens

Recommended Posts

Olá a todos.

 

Antes de mais quero pedir desculpa se este tópico está no forum errado.

 

Estou a tentar fazer upload de uma imagem utilizando jQuert e Ajax e acontece que, segundo o que tenho lido, não é coisa fácil e que jQuery + Ajax não faz sem um plugin, estou certo?

Há por ai alguém que me consiga explicar uma forma de fazer o upload de uma imagem utilizando jQuert + Ajax?

 

Tenho um form com vários campos:

- Data de nascimento

- Pais de residencia

- Imagem de perfil

 

O meu objectivo é quando seleccionado o ficheiro da Imagem de perfil e clicado num botão de "Carregar foto" imediatamente abaixo do campo de selecção da foto, que seja efectuada uma chamada a um ficheiro "image_upload_script.php" que faça a validaçnao do ficheiro e o upload do mesmo caso seja válido.

Esse script está escrito e a funcionar, o que eu não consigo é passar o ficheiro do form para o script utilizando jQuert + Ajax.

 

$("#uploadPictureAnchor").click(uploadUserPicture);
function uploadUserPicture(){
var selectedImage = $("#userPictureFile").val();
$.ajax({ type:"POST",
		url:"scripts/image_upload_script.php",
		data:{"uploaded_file":selectedImage},
		success:uploadUserPicture_resultHandler
});
}

 

image_upload_script.php

<?php

// uploaded_file é o nome do campo de onde vem o ficheiro.
// <input name="uploaded_file" type="file" />

$fileName = $_FILES["uploaded_file"]["name"];
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
$fileType = $_FILES["uploaded_file"]["type"];
$fileSize = $_FILES["uploaded_file"]["size"];
$fileErrorMsg = $_FILES["uploaded_file"]["error"];

// Validar a imagem
if(!$fileTmpLoc){
print "Nenhuma imagem foi seleccionada"; // Se não foi seleccionada nenhuma imagem
exit();
} else if($fileSize > 5242880){
print "A imagem deverá ser enos de 5Mb"; // Se a imagem for maior que 5mb
unlink($fileTmpLoc);
exit();
} else if(!preg_match("/\.(gif|jpg|png)$/i", $fileName)){
print "O formato da imagem não é suportado pelo sistema"; // O formato da imagem não é compativel
unlink($fileTmpLoc);
exit();
} else if($fileErrorMsg == 1){
print "Ocorreu um erro ao processar a imagem"; // Erro de PHP
exit();
}

//unlink($fileTmpLoc);
$moveResult = move_uploaded_file($fileTmpLoc, "members/$fileName");
if($moveResult != true){
print "Imagen não carregada!";
unlink($fileTmpLoc);
exit();
}
print "Imagem carregada com sucesso";

?>

 

LP

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajax não envia arquivos.

 

oq você terá q fazer é enviar a requisição para um iframe, ou usar action script.

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.