Buenas a todos.. Tengo un codigo para realizar la subida de las imagenes a mi servidor. Utilizo wamp server pero tengo problemas.
Código PHP:
if(isset($_FILES['fichero']['name'])) {
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
//empieza la redimension, tomamos la imagen temporal subida
$info = getimagesize($_FILES['fichero']['tmp_name']);
//segun el caso sera jpg, gif, png
switch ($info[2]) {
case 1:
$imagen = imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;
case 2:
$imagen = imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;
case 3:
$imagen = imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;
// etcétera //
}
$original = $imagen;
$original_w = imagesx($original);
$original_h = imagesy($original);
$maxw = 95; //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS
$maxh = 140;
if($original_w>$original_h) {
$muestra_w = $maxw;
$muestra_h = $maxh;
} else {
$muestra_w = $maxw;
$muestra_h = $maxh;
}
$muestra = imagecreatetruecolor($muestra_w,$muestra_h);
imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya
//imagedestroy($muestra);
// me verifica haya sido cargado el archivo
$ruta_destino = "../imagenes/";
$namefinal= trim ($_FILES['fichero']['name']);//quito espacios finales o al principio del nombre si los hay
$namefinal= ereg_replace (" ", "", $namefinal);//quito los espacios entre las palabtas del nombre si los hay
$uploadfile= $ruta_destino . $namefinal;
if(imagejpeg($muestra,$uploadfile,'100')) { // se coloca en su lugar final
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$uploadfile."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";
}else{echo "no se guardo la foto, ni se inserto el articulo en la Base de Datos";}
}else{echo "no se subio foto";}
}else{echo "no se selecciono la foto";}
$link_def = "http://localhost/imagenes/" . $namefinal;
$link = mysql_connect("localhost","root","");
mysql_select_db("productos",$link);
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO prod (modelo,precio,año,moneda,tipo,medida,descripcion,imagen1)
VALUES ('".$modelo."','".$precio."','".$año."','".$moneda."','".$radiobutton."','".$medida."','".$descripcion."','".$link_def."' )",$link);
// Ahora comprobaremos que todo ha ido correctamente
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo $my_error;
} else {
return true;
}
} else {
echo "Error, no ha introducido todos los datos";
}
}
aparentemente necesito permisos en la carpeta imagenes.. pero como se los asigno ?
porque me tira este error : ]: Unable to open '../imagenes/Penguins.jpg' for writing: No such file or directory in C:\wamp\www\cargaraviso.php on line 79
en la base de datos por su parte me crea correctamente la ruta de la imagen ..