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" />