Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

NunoDinis

[Resolvido] Upload de imagem

Mensagens Recomendadas

NunoDinis

Bom dia,

Estou a tentar fazer upload de imagens para uma pasta sem fazer refresh à página, para isso estou a usar javascript e ajax. Mas estou com uns erros..

Isto é a função que recebe o valor do fileup e manda o o ficheiro update.php .

function update() {
var fileup = document.getElementById("fileup").value;
//alert(fileup);

$.post('update.php', { fileup: fileup  }, function(resposta) {
  $(".loader").slideDown();
  if (resposta != false) {
// Exibe o erro na div
alert(resposta);
$(".loader").html(resposta);
  }
  else {
$(".loader").html("Alteração concluída com sucesso!");
  }
});
}

O ficheiro update.php é este:

// Recuperamos os valores dos campos através do método POST
$_FILES['fileup']['name'] = $_POST["fileup"];
$uploadpath = '../arquivo/original/';	  // directory to store the uploaded files
$allowtype = array('bmp', 'gif', 'jpg', 'jpe', 'png');		// allowed extensions
if($_FILES['fileup']['name']!=""){
 $uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);	   // gets the file name
 $sepext = explode('.', strtolower($_FILES['fileup']['name']));
 $type = end($sepext);	   // gets extension
 list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']);	 // gets image width and height
 $err = '';		 // to store the errors
}
$alwidth = 300;			// maximum allowed width, in pixels
$alheight = 300;  
if(isset($width) && isset($height) && ($width <= $alwidth || $height <= $alheight)) {
$err .= '<br/>O tamanho mínimo da imagem deve ser: '. $alwidth. ' x '. $alheight; }
if($err == '') {
//echo "erros".$err;
$fileName = $_FILES["fileup"]["name"];
$fileTmpLoc = $_FILES["fileup"]["tmp_name"];
$pathAndName = '../arquivo/original/'.$_POST["artigo"].'.'.$type.'';
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);

}

Está-me a dar o seguinte erro: Warning: getimagesize() [function.getimagesize]: Filename cannot be empty inC:\xampp\htdocs\WebApps\ws_apps\ws_app3\article-details\update.php on line 45

A linha 45 é esta: list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']);

O que tenho que mandar no valor de $_FILES['fileup']['tmp_name'] ?

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Eu não sei como é que se faz com o jQuery, mas sei como se faz com o API do browser.

Os browsers que suportam (leitura e) o envio de ficheiros suportam:

https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData

Basta fazeres add do input com o(s) ficheiro(s)

var request = new XMLHttpRequest();
// ...
var formData = new formData();
formData.append('file', fileup.files[0]);
//...
request.send(formData);

Para fazer isto usando jQuery... Não faço ideia. Tens aqui as ferramentas que precisas para fazê-lo usando o API do browser, pode ser que descubras.

EDIT: Tinha um erro no js. Agora já deve estar bem.

Editado por brunoais

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.