Object of class Imagem could not be converted to string in...
Tenho as classes Noticia, Imagem e o arquivo que é o action de um form. Quando tento inserir uma notícia aparece o erro: "Catchable fatal error: Object of class Imagem could not be converted to string in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\newsletter\Noticia.class.php on line 21". A linha 21 é
$banco->query("INSERT INTO noticia (titulo, noticia, foto, autor) VALUES ('$this->titulo', '$this->noticia', '$this->foto->path_arquivo', '$this->autor');");. Acredito que seja como estou tentando acessar a propriedade path_arquivo do objeto/atributo foto. Segue todo o código, se puderem me ajudar... Obrigado.
<?php
class Noticia {
protected $titulo;
protected $noticia;
protected $foto;
protected $autor;
public function __construct($titulo, $noticia, $foto, $autor) {
$this->titulo = $titulo;
$this->noticia = $noticia;
$this->foto = new Imagem($foto);
$this->autor = $autor;
}
public function inserir() {
if($this->foto->verificar_tamanho()) {
move_uploaded_file($this->foto->nome_arquivo_temporario, "fotos\\" . $this->foto->nome_arquivo);
$banco = new Banco();
$banco->query("INSERT INTO noticia (titulo, noticia, foto, autor) VALUES ('$this->titulo', '$this->noticia', '$this->foto->path_arquivo', '$this->autor');");
}
else
echo "Esta imagem é muito grande. Por favor, envie uma imagem com menos de 150 pixels de largura e altura.";
}
}
?>
<?phpclass Imagem {
public $nome_arquivo;
public $nome_arquivo_temporario;
public $path_arquivo;
protected $tamanho;
public function __construct($foto) {
$this->nome_arquivo = $foto['name'];
$this->nome_arquivo_temporario = $foto['tmp_name'];
$this->tamanho = getimagesize($foto['tmp_name']);
$this->path_arquivo = "fotos\\" . $foto['name'];
}
public function verificar_tamanho() {
if($this->tamanho[0] > 150 && $this->tamanho[1] > 150)
return false;
return true;
}
}
?>
<?php
function __autoload($classe) {
require_once $classe . ".class.php";
}
$noticia = new Noticia($_POST['titulo'], $_POST['noticia'], $_FILES['foto'], 78); //Alterar autor...
$noticia->inserir();
?>Discussão (14)
Carregando comentários...