2
Dear friends.
I have the following problem that I’m having trouble solving. I created a routine to Change Images using the UNLINK Function, but I’m not getting it.
Just change the Data minus the images, even putting the correct folder path, below posted my source code:
// Carrega as funções e exteções
include("../funcao/funcao_atualizar.php");
include("../funcao/funcao_select2.php");
include("../../extensoes/url_amigavel.php");
// Resgata os valores do formulário
$titulo = utf8_decode($_REQUEST['titulo']);
$url= url_amigavel($titulo);
$resumo= utf8_decode($_REQUEST['resumo']);
$conteudo= utf8_decode($_REQUEST['conteudo']);
$data= $_REQUEST['data'];
$id= $_REQUEST['id'];
// Verifica se o campo Imagem foi selecionado
if($_FILES['img']['name'] == false){
//Caso negativo, atualiza os dados sem atualizar o campo img_destaque
atualizar(array("titulo","url","resumo","conteudo","data"),
array($titulo,$url,$resumo,$conteudo,$data),"portifolio","Where id = $id");
// Retorna a página Portifólio com a informação de atualização
header("location: ../portifolio.php?info=ok");
} else {
// Se o campo img retornar valor ele faz o upload da imagem.
// Cria uma matriz com as definições da pasta, tamanho, extensões que a imagem deve conter.
// Também habilita e desabilita a renomiação do arquivo da imagem
$_UP['pasta'] = '../../img/portifolio/';
$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
$_UP['extensoes'] = array('jpg', 'png', 'gif');
$_UP['renomeia'] = true;
// Verifica se as extenção do arquivo é permitida
$extensao = strtolower(end(explode('.', $_FILES['img']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
header("location: ../editar_portifolio.php?info=erro-extesao");
exit;
}
// Verifica se o tamanho é inferior ao relacionado na Matriz $_UP
else if ($_UP['tamanho'] < $_FILES['img']['size']) {
header("location:../editar_portifolio.php?info=erro-tamanho");
exit;
}
// Caso imagem esteja com tamanho adequado e extensão permitida, realiza a troca do nome E O UPLOAD
else {
if ($_UP['renomeia'] == true) {
$nome_final = time().'.jpg';
} else {
$nome_final = $_FILES['img']['name'];
}
if (move_uploaded_file($_FILES['img']['tmp_name'], $_UP['pasta'] . $nome_final)) {
} else {
header("location: ../editar_portifolio.php?info=erro-img");
exit;
}
}
//Depois do upload ele faz uma consulta para selecionar o campo img_detaque para excluir a imagem antiga
$consulta= select("portifolio","img_destaque","Where id = $id");
// Verifica se consegue encontrar o campo
if($consulta == true){
// Caso positivo monta a matriz e resgata o resultado
for($i=0; $i<count($consulta); $i++){
$excluir_img = $consulta[$i]['img_destaque'];
}
// Exclui a Imagem ANTIGA do diretório - aqui está o erro
// não acha a pasta e não altera no Banco.
unlink("../../img/portifolio/$excluir_img");
}
//Faz a atualização dos campos e da incluse do nome da imagem no banco de dados
atualizar(array("titulo","url","resumo","conteudo","data","img_destaque"),
array($titulo,$url,$resumo,$conteudo,$data,$nome_final),"portifolio","Where id = $id");
// Retorna a página Portifólio com a informação de atualização
header("location:../portifolio.php?info=ok");
}
Error appears?
– rray
If the images have the same name as the old ones, it can be the browser cache that is showing the old image, so it "seems" that the photos do not change.
– Guilherme Nascimento
Dear friend, no error appears, simply does not change the Image in the Destination Folder or saved in the Database. How can I solve this problem? Where should I make the change? Thank you.
– Cesar