Hola, estoy teniendo problemas con la funcion unlink.
El php que hice pretende modificar la Base de datos cambiando el contenido de un campo para que refiera a una foto diferente a la que ya esta, y que ademas mueva el archivo que se corresponde con lo que marca la base de datos a la carpeta correspondiente para que luego se pueda visualizar.
Ahora quise agregarle lineas de codigo para que al reemplazar la vieja foto por una nueva, esta se elimine de la carpeta.
if($Foto =! ''){
if(is_file('../'.$fotovieja) ){
unlink( '../'.$fotovieja);
}
}
Pero estoy teniendo un problema extraño.
Sin esas lineas, todo funciona bien.
Pero cuando agrego esas lineas, la foto que se debe eliminar con UNLINK se elimina
pero sin embargo la foto que se mueve a la carpeta se nombre como "1"
y tambien en la base de datos, se nombre como "1".
Y funciona! solo que se nombra como "1", sin extension. Nada de "1.jpg"
Estoy confundido.
Este es el codigo pertinente.
Código PHP:
$cnx = mysql_connect('localhost','root','saracatunga');
mysql_select_db("arrorro");
$Nombre = $_POST['Nombre'];
$Descripcion = $_POST['Descripcion'];
$Id = $_POST['Id'];
///////////
$consulta4modik1 = "SELECT * FROM kitnombres
WHERE kitnombre = '$Id'";
$resultado4modik1 = mysql_query($consulta4modik1) or die(mysql_error());
$fila4modik1 = mysql_fetch_array($resultado4modik1) or die(mysql_error());
$IDP = $fila4modik1['IDK'];
$fotovieja = $fila4modik1['fotogrande'];
//////////
$fotoName = $_FILES['Foto']['name'];
$Foto = $fotoName;
if($Foto =! ''){
if(is_file('../'.$fotovieja) ){
unlink( '../'.$fotovieja);
}
}
if($Foto ==''){ //proteccion si no llega nada agarra el que ya esta
$Foto = $fila4modik1['fotogrande'];
}else{
$tmpName = $_FILES['Foto']['tmp_name']; //si este y ruta los pongo arriba me da error
$ruta = "../$Foto";
move_uploaded_file($tmpName, $ruta);
$original = imagecreatefromjpeg('../'.$Foto);
$ancho_original = imagesx( $original );
$alto_original = imagesy( $original );
$ancho_final = 500;
$alto_final = 500;
if(ancho_original!=ancho_final or alto_original!=alto_final){
$destino = imagecreatetruecolor($ancho_final,$alto_final);
imagecopyresampled( $destino, $original, 0,0,0,0,$ancho_final,$alto_final,$ancho_original,$alto_original );
imagejpeg( $destino , '../'.$Foto);
//echo '</br>'.$destino; funca
}
}
//echo $Id; funca
if($Nombre ==''){
$Nombre = $fila4modik1['kitnombre'];
}
if($Descripcion ==''){
$Descripcion = $fila4modik1['kitdescripcion'];
}
$consulta4modik2 = "UPDATE kitnombres SET
kitdescripcion='$Descripcion',
fotogrande='$Foto',
kitnombre='$Nombre'
WHERE IDK = $IDP";
$consultando4modik = mysql_query($consulta4modik2) or die("</br>El error es que ". mysql_error());
header("Location: ../../home.php?seccion=kit&n=$IDP");
Las rutas son estas:
C:\AppServ\www\arrorro\SETS
y el archivo del codigo que postie, se encuentra en
C:\AppServ\www\arrorro\SETS\EDITAR
por favor, me pueden aconsejar?