• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

amanique

Upload de imagem erro?

20 mensagens neste tópico

Meus caros,

Não consigo fazer o upload da imagem com este código.

Ele guarda o caminho na bd muito bem, mas não faz o upload.

Curiosamente tenho exactamente o mesmo código noutro site e funciona.

Conseguem descobrir onde está o erro?

O código é o seguinte:

<?php require_once('../Connections/ruisantos.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Inserir")) {
$uploaddir = $_SERVER['DOCUMENT_ROOT']."/images/";
$uploadfile = $uploaddir.basename($_FILES["fileupload"]["name"]);

@move_uploaded_file($_FILES["fileupload"]["tmp_name"],$uploadfile);

  $insertSQL = sprintf("INSERT INTO carro (Modelo, Ano, Kms, Combustivel, Cor, Potencia, Portas, Lugares, Garantia, Equipamento, Info, Obs, Preco, foto1) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['Modelo'], "text"),
                       GetSQLValueString($_POST['Ano'], "int"),
                       GetSQLValueString($_POST['Kms'], "int"),
                       GetSQLValueString($_POST['Combustivel'], "text"),
                       GetSQLValueString($_POST['Cor'], "text"),
                       GetSQLValueString($_POST['Potencia'], "text"),
                       GetSQLValueString($_POST['Portas'], "text"),
                       GetSQLValueString($_POST['Lugares'], "text"),
                       GetSQLValueString($_POST['Garantia'], "text"),
                       GetSQLValueString($_POST['Equipamento'], "text"),
                       GetSQLValueString($_POST['Info'], "text"),
                       GetSQLValueString($_POST['Obs'], "text"),
                       GetSQLValueString($_POST['Preco'], "text"),
                       GetSQLValueString("images/".$_FILES["fileupload"]["name"], "text"));

  mysql_select_db($database_ruisantos, $ruisantos);
  $Result1 = mysql_query($insertSQL, $ruisantos) or die(mysql_error());

  $insertGoTo = "listModelo.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_ruisantos, $ruisantos);
$query_Carro = "SELECT * FROM carro";
$Carro = mysql_query($query_Carro, $ruisantos) or die(mysql_error());
$row_Carro = mysql_fetch_assoc($Carro);
$totalRows_Carro = mysql_num_rows($Carro);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CarClass</title>
<style type="text/css">
<!--
.style1 {font-family: Arial, Helvetica, sans-serif}
.style3 {
font-family: Arial, Helvetica, sans-serif;
font-size: 18px;
}
.style4 {
font-size: 24px;
font-family: Arial, Helvetica, sans-serif;
}
-->
</style>
</head>

<body>
<form id="Inserir" name="Inserir" enctype="multipart/form-data" method="POST" action="<?php echo $editFormAction; ?>">
<table width="650" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td colspan="3" align="center"><span class="style4">CarClass</span></td>
  </tr>
  <tr>
    <td colspan="3"> </td>
  </tr>
  <tr>
    <td colspan="3" align="center"><span class="style3">Inserir Novo Modelo</span></td>
  </tr>
  <tr>
    <td colspan="3"> </td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Modelo</span></td>
    <td colspan="2">
      <input name="Modelo" type="text" id="Modelo" size="50" />    </td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Ano</span></td>
    <td colspan="2"><input name="Ano" type="text" id="Ano" size="10" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Kms</span></td>
    <td colspan="2"><input name="Kms" type="text" id="Kms" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Combustível</span></td>
    <td colspan="2"><input name="Combustivel" type="text" id="Combustivel" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Cor</span></td>
    <td colspan="2"><input name="Cor" type="text" id="Cor" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Potência</span></td>
    <td colspan="2"><input name="Potencia" type="text" id="Potencia" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Portas</span></td>
    <td colspan="2"><input name="Portas" type="text" id="Portas" size="20" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Lugares</span></td>
    <td colspan="2"><input name="Lugares" type="text" id="Lugares" size="20" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Garantia</span></td>
    <td colspan="2"><input name="Garantia" type="text" id="Garantia" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Equipamento</span></td>
    <td colspan="2"><textarea name="Equipamento" id="Equipamento" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Outras Informações</span></td>
    <td colspan="2"><textarea name="Info" id="Info" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Observações</span></td>
    <td colspan="2"><textarea name="Obs" id="Obs" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">Preço</span></td>
    <td colspan="2"><input name="Preco" type="text" id="Preco" size="50" /></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">foto1</span></td>
    <td colspan="2"><input type = "hidden" name = "MAX_FILE_FILE" value = "2048000" /> 
        <input type = "file" name = "fileupload" size="78"></td>
  </tr>
  
  
  

  
  <tr>
    <td height="25" colspan="3" align="center" valign="middle"><input type="submit" name="Inserir" id="Inserir" value="Inserir" /></td>
  </tr>
</table>


<input type="hidden" name="MM_insert" value="Inserir" />
</form>

<div align="center">
<form name="voltar" id="voltar" action="backoffice.php" method="post">
<input type="submit" value="Voltar" name="voltar"/>
  </form>
</div>
</body>
</html>
<?php
mysql_free_result($Carro);
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tira o @ antes do move_uploaded_file e diz se aparece algum erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não aparece nenhum erro. Mas continua tudo na mesma, não faz o upload. Não percebo como é que num site dá e no outro não.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É simples... deverá ter a ver com a configuração do php.ini dum servidor e do outro, talvez no que não funciona pois esta restrito a um determinado tamanho de upload (Padrão 2 MB)

Para alterares isso edita o ficheiro php.ini do teu servidor e altera a seguinte configuração

max_input_time = 1000

memory_limit = 128M

upload_max_filesize = 100M

post_max_size = 100M 

Tens aqui um artigo que explica o upload_max_filesize e post_max_size :

http://www.botturn.com/tutorial-diferenca-entre-upload_max_filesize-e-post_max_size/

Abraço espero ter ajudado :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Reparem, criei dois ficheiros através desse tutorial e não funciona na mesma:

form.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>

uploader.php

<?php
$target_path = "images/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim a pasta existe, quanto às permissões eu estou a usar uma pass de administrador, mas sabem onde posso ver que tipo de permissões tem este user no cpanel?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não encontro CHMOD e nas minhas contas FTP, tenho quota ilimitada, que está activa, password e uma configuração automatica de cliente FTP e mais nada. De resto está tudo correcção, acesso ao phpmyadmin a 100%. Aparentemente tudo normal...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pronto, entra por 1 clente de FTP no FTP do site e ve as propriedades ou CHmod apartir de lá.

se o servidor correr em linux, tens q conseguir ver isso,mas tambem podse fazer outra coisa que é verificar se é possivel escrever lá ou nao pelo codigo:

<?php
if (is_writable("images/")) {
  echo 'Podes uploadar para la!';
} else {
  echo 'nao podes.';
}
?>

é normal que nao funcionasse, faltava " " entre o image/ xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não existe o chmod e o código que me mandaste não funciona.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OK com este já funcionou e diz: Não podes. Alguma coisa está mal.

<?php
$filename = 'images/';
if (is_writable($filename)) {
   echo 'Podes uploadar para la!';
} else {
   echo 'nao podes.';
}
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não existe o chmod e o código que me mandaste não funciona.

O servidor está a correr sob Linux? Se sim, então existe o chmod, pois este é um comando de Linux (change mode).

Consegues aceder remotamente ao servidor por SSH ou algo assim?

O CuteFTP, e muitos outros clientes FTP permitem alterar permissões também.

P.S. - Permissão 777 deverá dar-te tudo o que queres. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok. Já funciona! Foi a primeira vez que vi isto, mas já percebi. Obrigado.

Agora voltando à vaca fria.

Fazendo o upload de várias imagens, tenho o ficheiro com o seguinte código e está-me a dar um erro:

"Ocorreu um erro no envio do ficheiroQuery was empty"

insertModelo.php

<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Inserir")) {

$foto1=($_FILES['foto1']['name']);
$foto2=($_FILES['foto2']['name']);
$foto3=($_FILES['foto3']['name']);
$foto4=($_FILES['foto4']['name']);
$foto5=($_FILES['foto5']['name']);
$foto6=($_FILES['foto6']['name']);

$uploaddir = "images/";
$uploadfile = $uploaddir.basename( $_FILES['foto1']['name']['foto2']['name']['foto3']['name']['foto4']['name']['foto5']['name']['foto6']['name']);

//Writes the photo to the server
if(move_uploaded_file($_FILES['foto']['tmp_name']['foto2']['tmp_name']['foto3']['tmp_name']['foto4']['tmp_name']['foto5']['tmp_name']['foto6']['tmp_name'], $target))
{

//Tells you if its all ok
echo "Os ficheiros ". basename( $_FILES['foto1']['name']['foto2']['name']['foto3']['name']['foto4']['name']['foto5']['name']['foto6']['name']). " foram enviado";
}
else {

//Gives and error if its not
echo "Ocorreu um erro no envio do ficheiro";
}


  $insertSQL = sprintf("INSERT INTO carro (Modelo, Ano, Kms, Combustivel, Cor, Potencia, Portas, Lugares, Garantia, Equipamento, Info, Obs, Preco, foto1, foto2, foto3, foto4, foto5, foto6) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['Modelo'], "text"),
                       GetSQLValueString($_POST['Ano'], "int"),
                       GetSQLValueString($_POST['Kms'], "int"),
                       GetSQLValueString($_POST['Combustivel'], "text"),
                       GetSQLValueString($_POST['Cor'], "text"),
                       GetSQLValueString($_POST['Potencia'], "text"),
                       GetSQLValueString($_POST['Portas'], "text"),
                       GetSQLValueString($_POST['Lugares'], "text"),
                       GetSQLValueString($_POST['Garantia'], "text"),
                       GetSQLValueString($_POST['Equipamento'], "text"),
                       GetSQLValueString($_POST['Info'], "text"),
                       GetSQLValueString($_POST['Obs'], "text"),
                       GetSQLValueString($_POST['Preco'], "text"),
                       GetSQLValueString("images/".$_FILES["foto1"]["name"], "text"),
				   GetSQLValueString("images/".$_FILES["foto2"]["name"], "text"),
				   GetSQLValueString("images/".$_FILES["foto3"]["name"], "text"),
				   GetSQLValueString("images/".$_FILES["foto4"]["name"], "text"),
				   GetSQLValueString("images/".$_FILES["foto5"]["name"], "text"),
				   GetSQLValueString("images/".$_FILES["foto6"]["name"], "text"));

  mysql_select_db($database_ruisantos, $ruisantos);
  $Result1 = mysql_query($insertSQL, $ruisantos) or die(mysql_error());

  $insertGoTo = "listModelo.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_ruisantos, $ruisantos);
$query_Carro = "SELECT * FROM carro";
$Carro = mysql_query($query_Carro, $ruisantos) or die(mysql_error());
$row_Carro = mysql_fetch_assoc($Carro);
$totalRows_Carro = mysql_num_rows($Carro);
?>

formulário

<form id="Inserir" name="Inserir" enctype="multipart/form-data" method="POST" action="<?php echo $editFormAction; ?>">
<table width="650" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td colspan="3" align="center"><span class="style4">CarClass</span></td>
  </tr>
  <tr>
    <td colspan="3"> </td>
  </tr>
  <tr>
    <td colspan="3" align="center"><span class="style3">Inserir Novo Modelo</span></td>
  </tr>
  <tr>
    <td colspan="3"> </td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Modelo</span></td>
    <td colspan="2">
      <input name="Modelo" type="text" id="Modelo" size="50" />    </td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Ano</span></td>
    <td colspan="2"><input name="Ano" type="text" id="Ano" size="10" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Kms</span></td>
    <td colspan="2"><input name="Kms" type="text" id="Kms" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Combustível</span></td>
    <td colspan="2"><input name="Combustivel" type="text" id="Combustivel" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Cor</span></td>
    <td colspan="2"><input name="Cor" type="text" id="Cor" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Potência</span></td>
    <td colspan="2"><input name="Potencia" type="text" id="Potencia" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Portas</span></td>
    <td colspan="2"><input name="Portas" type="text" id="Portas" size="20" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Lugares</span></td>
    <td colspan="2"><input name="Lugares" type="text" id="Lugares" size="20" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Garantia</span></td>
    <td colspan="2"><input name="Garantia" type="text" id="Garantia" size="50" /></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Equipamento</span></td>
    <td colspan="2"><textarea name="Equipamento" id="Equipamento" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Outras Informações</span></td>
    <td colspan="2"><textarea name="Info" id="Info" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">Observações</span></td>
    <td colspan="2"><textarea name="Obs" id="Obs" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">Preço</span></td>
    <td colspan="2"><input name="Preco" type="text" id="Preco" size="50" /></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">foto1</span></td>
    <td colspan="2"><input type = "hidden" name = "MAX_FILE_FILE" value = "2048000" /> 
        <input type = "file" name = "foto1" size="78"></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">foto2</span></td>
    <td colspan="2"><input type = "hidden" name = "MAX_FILE_FILE" value = "2048000" /> 
        <input type = "file" name = "foto2" size="78"></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">foto3</span></td>
    <td colspan="2"><input type = "hidden" name = "MAX_FILE_FILE" value = "2048000" /> 
        <input type = "file" name = "foto3" size="78"></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">foto4</span></td>
    <td colspan="2"><input type = "hidden" name = "MAX_FILE_FILE" value = "2048000" /> 
        <input type = "file" name = "foto4" size="78"></td>
  </tr>
  <tr>
    <td height="25" align="left" valign="middle"><span class="style1">foto5</span></td>
    <td colspan="2"><input type = "hidden" name = "MAX_FILE_FILE" value = "2048000" /> 
        <input type = "file" name = "foto5" size="78"></td>
  </tr>
  <tr>
    <td width="150" height="25" align="left" valign="middle"><span class="style1">foto6</span></td>
    <td colspan="2"><input type = "hidden" name = "MAX_FILE_FILE" value = "2048000" /> 
        <input type = "file" name = "foto6" size="78"></td>
  </tr>
  

  
  <tr>
    <td height="25" colspan="3" align="center" valign="middle"><input type="submit" name="Inserir" id="Inserir" value="Inserir" /></td>
  </tr>
</table>


<input type="hidden" name="MM_insert" value="Inserir" />
</form>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguém me pode ajudar?

Estou farto de tentar tutoriais e sempre com o mesmo resultado. Alguma coisa está errada. Vá lá artistas!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Posso sim, não leste os últimos posts, já consigo escrever na pasta.

Agora o erro está no código em cima.

0

Partilhar esta mensagem


Link 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