Me surgio una duda acerca de subir archivos con imágenes a mi web dinámica, agradeceria pudieran ayudarme.
Tengo un código que conseguí y analizandolo no le encuentro el error, tengo un index donde publico productos de mi base de datos, el código que tengo para subir mis imágenes,desde la página de altaproductos es:
Código :
<?
include_once("../config2.php");
//conexion al servidor y mi base de datos
// alta producto----------------------------------------------------------------------
if(isset($_POST['alta']))
{
//inserto los otros datos a mi base de datos
$idIn = mysql_insert_id(); //el numero de id de insercion ultimo
}
// controles sobre la imagen a subir ----------------------------------------------------
if($_FILES['foto']['name'] != "")
{
$temp_name = $_FILES['foto']['tmp_name'];//las imagenes q subo al principio se guarda en un temporal
$file_name = $_FILES['foto']['name'];
$file_name = str_replace("\\","",$file_name);//todo lo q esta de aca para abajo lo reemplazo x nada ""
$file_name = str_replace("'","",$file_name);
$file_name = str_replace("&","",$file_name);
$file_name = str_replace("#","",$file_name);
$file_name = str_replace("!","",$file_name);
$file_name = str_replace(" ","-",$file_name);
$file_name = $idIn . "_gr.jpg"; // "_" . $file_name , creo el nombre del archivo
$file_path = $directorio . $file_name;
$result = move_uploaded_file($temp_name, $file_path);
// CREO IMAGEN CHICA de (150px x X) ó (X x 150px) 150px es el máximo permitido de cualquier lado ------------------
$dato = getimagesize($file_path); //getimagesize array que toma datos de un archivo
$ancho = $dato[0]; //getimagesize pone en el lugar 0 el ancho y en el 1 el alto
$alto = $dato[1];
// establezco los nuevos parámetros para el ancho y alto de la imagen ---------------------------------------------
if($ancho > $alto) //si es mas ancho que alto
{
$ancho_n = 150;
$prop = $alto / $ancho;
$alto_n = $ancho_n * $prop;
}
else
{
$alto_n = 150;
$prop = $ancho / $alto;
$ancho_n = $alto_n * $prop;
}
// subo la imagen al servidor y la redimensiono ------------------------------------------------------------------
$file_ch = $idIn . "_ch.jpg";
$destino = $directorio . $file_ch;
$destino_temporal = tempnam("tmp/","tmp");
redimensionar_jpeg($file_path, $destino_temporal, $ancho_n, $alto_n, 100); //es la funcion que cree, el 100 es la calidad de la imagen
// abre el directorio y guardamos la imagen ------------------------------------------------------------------------------------------
$fp = fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);
// SQL update para agregar nombres de imagen al servidor --------------------------------------------------------
$sqlup = "UPDATE productos SET
imagenCh='". $file_ch ."',
imagenGr='". $file_name."'
WHERE idProducto=".$idIn;
$update = mysql_query($sqlup, $link) or die("UPDATE imagenes: Error de insercion sql");
}
// FIN UPLOAD imagen El confi2.php:
Código :
<?
$servidor="***";
$usuario="****";
$pass="****";
$basedato="****";
$directorio = "images/";
$file_name = $_FILES['foto']['name'];
$file_ext = substr($file_name, strrpos($file_name,"."));
// Redimensionar la imagen ------------------------------------------------------------------------------------------
//funcion con nombre y parametros
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
// crear una imagen desde el original
$img = imagecreatefromjpeg($img_original);
// crear una imagen nueva con el archivo jpg
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
// redimensiona la imagen original copiandola en la imagen
imagecopyresized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la nueva imagen redimensionada donde indicia $img_nueva
imagejpeg($thumb,$img_nueva,$img_nueva_calidad);
imagedestroy($img);
}El problema es cuando edito e intento eliminar la fotografia no lo hace:
Código :
if(isset($_POST['editar']))
{
if($_REQUEST['deleteImage'] == 1)
{
$ch = $directorio . $_POST['imagenChDel'];
$gr = $directorio . $_POST['imagenGrDel'];
if(file_exists($ch)){ @unlink($ch); }
if(file_exists($gr)){ @unlink($gr); }
}
if($_FILES['foto']['name'] != "")
{ //realizo lo mismo que para el alta }?>
<form name="form" id="form" action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="id" id="id" value="<? echo $row['idProducto']; ?>">
<input type="hidden" name="imagenChDel" id="imagenChDel" value="<? echo $row['imagenCh']; ?>">
<input type="hidden" name="imagenGrDel" id="imagenGrDel" value="<? echo $row['imagenGr']; ?>">
<? if($row['imagenCh']){ ?>
<p >Imagen relacionada<br><br>
<input type="checkbox" name="deleteImage" id="deleteImage" value="1">
<label for="deleteImage" class="tahoma11">
Desea eliminar la imagen ?
</label></p>
<div><img src="images/<? echo $row['imagenCh']; ?>" alt="<? echo $dato['producto']; ?>" hspace="0px" vspace="5px" /></div>
<? }else{ ?>
<p>Esta noticia no tiene imagen relacionada... </p>
<? } ?>
<input name="foto" id="foto" type="file" class="input200" />
