Foros del Web » Programando para Internet » PHP »

me sobreescribe las fotos

Estas en el tema de me sobreescribe las fotos en el foro de PHP en Foros del Web. hola a todos y feliz navidad: el problema que tengo es que tengo un escrip bajodo de estas paginas para crear thumbail y subir fotos ...
  #1 (permalink)  
Antiguo 30/12/2004, 02:03
 
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 8 meses
Puntos: 0
me sobreescribe las fotos

hola a todos y feliz navidad:

el problema que tengo es que tengo un escrip bajodo de estas paginas para crear thumbail y subir fotos y va de maravilla pero he odservado que me sobreescribe las fotos y los thumbail como puedo evitar eso.

este es el scrip completo que uso:
<?
//tomo el valor de un elemento de tipo texto del formulario
$comentarios = $_POST["texto"];
$usuario = $_POST["ID"];
$recorido = $_POST["recorrido"];
echo "Escribió en el campo de texto: " . $comentarios . "<br><br>";
echo "prueba usuario: " . $usuario . "<br><br>";
echo "prueba recorrido: " . $recorido . "<br><br>";
//datos del arhivo
$imagen = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")||strpos($tipo_archivo, "jpg")) && ($tamano_archivo < 5000000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 500 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],"d:/www/bicis/fotos/".$imagen)){

echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?> <? include ("includes/config.php");
include ("includes/funciones.php"); ?>
<? $cnx = conectar ();

$campos = "ID,idrecorido,foto,thumbail,comentarios ";
$valores.= "'".$usuario."',";
$valores.= "'".$recorido."',";
$valores .= "'".$imagen."',";
$valores .= "'tn_".$imagen."',";
$valores .= "'".$comentarios."'";

if ($imagen==""){
echo ("<p>Debes de introducir alguna foto.</p>");
}
else
if ($comentarios==""){
echo ("<p>Debes de introducir el comentario de la foto</p>");
}
else

$sql = "INSERT INTO fotos ($campos) VALUES($valores)";
$res = mysql_query($sql) or die(mysql_error());
echo "Registro ingresado.";

?>
<?
thumbjpeg($imagen, 125);

function thumbjpeg($imagen,$altura ) {
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
$dir_thumb = "thumbs/";
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
// el thumbnail se llamaría "tn_imagen1.jpg"
$prefijo_thumb = "tn_";


// Aquí tendremos el nombre de la imagen.
$nombre=basename($imagen);
// Aquí la ruta especificada para buscar la imagen.
$camino=dirname($imagen)."/fotos/";

// Intentamos crear el directorio de thumbnails, si no existiera previamente.
if (!file_exists($camino.$dir_thumb))
@mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);

// Aquí comprovamos que la imagen que queremos crear no exista previamente
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$n ombre)) {
echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n";
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");

// miramos el tamaño de la imagen original...
$datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");

// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);

// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);

// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);

// voilà la salvamos con el nombre y en el lugar que nos interesa.
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb .$nombre);
}
}
?> <? mysql_close($cnx);
exit; ?>
  #2 (permalink)  
Antiguo 03/01/2005, 16:02
 
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 8 meses
Puntos: 0
solucionado

hola a todos despues de hacer esta consulta y como no encontraba la solucion, me puse a leer un librito de php, y encontre lo que puede ser una solucion para no sobre escribir las fotos, es poner el nombre del time en php y asi solo tengo que modifica un par de lineas, probado y funcionando al 100%,

Si alguien sabe algo mejor o me encuentra algun error agradeceria que me lo comunicara.

Pongo de nuevo todo el codigo y pongo en negrita las lineas modificadas o insertadas.

<?
// Autentificator
// Gestión de Usuarios PHP+Mysql+sesiones
// by Pedro Noves V. (Cluster)
// [email protected]
// ------------------------------------------
require("aut_verifica.inc.php");
$nivel_acceso=10; // Nivel de acceso para esta página.
// se chequea si el usuario tiene un nivel inferior
// al del nivel de acceso definido para esta página.
// Si no es correcto, se mada a la página que lo llamo con
// la variable de $error_login definida con el nº de error segun el array de
// aut_mensaje_error.inc.php
if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
<?
//tomo el valor de un elemento de tipo texto del formulario
$comentarios = $_POST["texto"];
$usuario = $_POST["ID"];
$recorido = $_POST["recorrido"];
echo "Escribió en el campo de texto: " . $comentarios . "<br><br>";
echo "prueba usuario: " . $usuario . "<br><br>";
echo "prueba recorrido: " . $recorido . "<br><br>";
//datos del arhivo
$imagen1 = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")||strpos($tipo_archivo, "jpg")) && ($tamano_archivo < 5000000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 500 Kb máximo.</td></tr></table>";
}else{
$imagen= time().".jpg";
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],"d:/www/bicis/fotos/".$imagen)){

echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?> <? include ("includes/config.php");
include ("includes/funciones.php"); ?>
<? $cnx = conectar ();

$campos = "ID,idrecorido,foto,thumbail,comentarios ";
$valores.= "'".$usuario."',";
$valores.= "'".$recorido."',";
$valores .= "'".$imagen."',";
$valores .= "'tn_".$imagen."',";
$valores .= "'".$comentarios."'";

if ($imagen==""){
echo ("<p>Debes de introducir alguna foto.</p>");
}
else
if ($comentarios==""){
echo ("<p>Debes de introducir el comentario de la foto</p>");
}
else

$sql = "INSERT INTO fotos ($campos) VALUES($valores)";
$res = mysql_query($sql) or die(mysql_error());
echo "Registro ingresado.";

?>
<?
thumbjpeg($imagen, 125);

function thumbjpeg($imagen,$altura ) {
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
$dir_thumb = "thumbs/";
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
// el thumbnail se llamaría "tn_imagen1.jpg"
$prefijo_thumb = "tn_";


// Aquí tendremos el nombre de la imagen.
$nombre=basename($imagen);
// Aquí la ruta especificada para buscar la imagen.
$camino=dirname($imagen)."/fotos/";

// Intentamos crear el directorio de thumbnails, si no existiera previamente.
if (!file_exists($camino.$dir_thumb))
@mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);

// Aquí comprovamos que la imagen que queremos crear no exista previamente
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$n ombre)) {
echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n";
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");

// miramos el tamaño de la imagen original...
$datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");

// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);

// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);

// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);

// voilà la salvamos con el nombre y en el lugar que nos interesa.
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb .$nombre);
}
}
?> <? mysql_close($cnx);
exit; ?>
  #3 (permalink)  
Antiguo 03/01/2005, 16:03
 
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 8 meses
Puntos: 0
a se me olvidava feliz y prospero año 2005 y cuidadin que esta terminacion tie muchos premios.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:58.