Foros del Web » Programando para Internet » PHP »

Modificar un script para renombrar un archivo

Estas en el tema de Modificar un script para renombrar un archivo en el foro de PHP en Foros del Web. Obtuve este script para redimensionar una imagen. La misma sube desde un formulario y esta funcion se aplica cuando se va a crear un thumbnail. ...
  #1 (permalink)  
Antiguo 25/01/2008, 19:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 0
Modificar un script para renombrar un archivo

Obtuve este script para redimensionar una imagen.
La misma sube desde un formulario y esta funcion se aplica cuando se va a crear un thumbnail.
Pero necesito renombrar el archivo definitivo a traves de un nombre que tambien se define en el formulario, es decir, se sube el archivo ALFA.jpg pero el usuario define que se llamará BETA.jpg , pero no sé dónde se puedo modificar esto.

Código PHP:
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)."/"

     
// Intentamos crear el directorio de thumbnails, si no existiera previamente. 
     
if (!file_exists($camino.$dir_thumb)) 
          @
mkdir ($camino.$dir_thumb0777) 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.$nombre)) { 
          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$img0000$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); 
     } 

  #2 (permalink)  
Antiguo 25/01/2008, 20:14
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Modificar un script para renombrar un archivo

http://php.myokram.info/phpimagen/ te aseguro que solucionara el problema sin inconveniente alguno.

Última edición por eddwinpaz; 25/01/2008 a las 20:36
  #3 (permalink)  
Antiguo 25/01/2008, 21:55
Avatar de jcarrascal  
Fecha de Ingreso: enero-2008
Mensajes: 87
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: Modificar un script para renombrar un archivo

1. Agrega un parámetro $nombre a la función:
Código PHP:
function thumbjpeg($imagen,$altura,$nombre) { 
2. Cambia el prefijo para que quede vacío:
Código PHP:
$prefijo_thumb "tn_"
3. Comenta la linea donde se obtiene el nombre. Déjala así:
Código PHP:
/*$nombre=basename($imagen);*/ 
4. Cambia el código donde estás llamando a la función para que pase el nuevo parámetro.

Con eso te debería funcionar.

Suerte.
  #4 (permalink)  
Antiguo 25/01/2008, 21:56
Avatar de jcarrascal  
Fecha de Ingreso: enero-2008
Mensajes: 87
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: Modificar un script para renombrar un archivo

Uuups. Debería ser así:

Código PHP:
$prefijo_thumb ""
Con las comillas vacías.
  #5 (permalink)  
Antiguo 26/01/2008, 15:02
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 0
Re: Modificar un script para renombrar un archivo

(Gracias Edwwinpaz, epro el server no usa PHP 5 sino 4.4, asi que no me servirá.)

Jcarrascal: algo no funciona porque no renombra el archivo creado. Por si el error estuviera fuera de la funcion, coloco lo que está en el script general y la funcion. Devuelve en pantalla que la imagen se creo con el nuevo nombre, pero la guarda con el nombre de origen, no con el de $nombre generado:

Código PHP:
$nombre=rand(1000000,9999999); //nombre al azar para renombrar la imagen.

$ruta "../fotos_gr/".$_FILES['imagen']['name'];// ruta para subir la foto cruda 

        
copy ($_FILES['imagen']['tmp_name'],$ruta); 
        
        
/****************************************
                    funcion resize
        /****************************************/
                    
        
function thumbjpeg($imagen,$altura,$nombre) {  
    global 
$nombre;
     
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".  
     
$dir_thumb "";  
     
// 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)."/";  

     
// Intentamos crear el directorio de thumbnails, si no existiera previamente.  
     
if (!file_exists($camino.$dir_thumb))  
          @
mkdir ($camino.$dir_thumb0777) 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.$nombre)) {  
          echo 
$camino.$dir_thumb.$prefijo_thumb.$nombre." NO existia<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$img0000$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);  
     }  
    }  
        
/****************************************
                   FIN funcion 
        /****************************************/    
    
thumbjpeg($ruta200$nombre); 
  #6 (permalink)  
Antiguo 31/01/2008, 13:13
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 0
Re: Modificar un script para renombrar un archivo

¿Podrá verlo alguien, para ayudarme a resolverlo? muchas gracias
  #7 (permalink)  
Antiguo 25/02/2008, 11:09
Avatar de bandolera_triste  
Fecha de Ingreso: noviembre-2007
Mensajes: 136
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Modificar un script para renombrar un archivo

y luego? ke paso lo resolviste??'
  #8 (permalink)  
Antiguo 25/02/2008, 12:55
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 0
Re: Modificar un script para renombrar un archivo

Lamentablemente no (hubiera publicado la respuesta, claro).
Gracias y seguiré deambulando en su búsqueda.
  #9 (permalink)  
Antiguo 25/02/2008, 17:18
Avatar de bandolera_triste  
Fecha de Ingreso: noviembre-2007
Mensajes: 136
Antigüedad: 16 años, 4 meses
Puntos: 0
De acuerdo Re: Modificar un script para renombrar un archivo

haber pues yo lo hise asi
pues como nadie me ayudo y me resolvio la duda de porke
mi codigo al ponerle una carpeta especifica no funcionaba, opte por poner el script en la carpeta ke deseo guardar las imagenes
asi si me funciona.. pueden kreerlo

bueno aki te dejo el script ke hise cualkier duda lo seguimos platicando

ahora mi problema es ke kiero ke desaparescan los warning porke

<?php

$archivo = $_FILES["userfile"]["name"];

$extension = $HTTP_POST_FILES['userfile']['type'];
$tamano = $HTTP_POST_FILES['userfile']['size'];

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {

// echo "El archivo ". $_FILES['userfile']['name'] ." fue cargado satisfactoriamente.\n";
// echo "Mostrando su contenido\n";
// echo $archivo."<br>";
//echo "<br>".$extension."<br>";
//echo $tamano."<br>";
if ($tamano > 10485760){
echo "El tamaño del archivo no es correcto. <br><br><table><tr><td><li>se permiten archivos de 10 MB máximo.</td></tr></table>";
}else{
if ($_FILES['userfile']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg"){

// Nuevo nombre para la imagen.
$nuevoNombre = time().".jpg"; // Funcion time (retorna la cantidad de seg transcurridos) asegurando que cada nuevo documento el nombre es unico.
$nuevoNombre=$resultado."_".$nuevoNombre;
//la variable $resultado viene de un form que manda a llamar este script
move_uploaded_file($_FILES['userfile']['tmp_name'], $nuevoNombre);
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}//si supera el tamaño

} //si el archivo ha sido cargado
else {
echo "Posible ataque de carga de archivo: ";
echo "nombre de archivo '". $HTTP_POST_FILES['userfile']['tmp_name'] . "'.";
}
?>

Última edición por bandolera_triste; 25/02/2008 a las 17:23 Razón: me falto definir el origen de una variable
  #10 (permalink)  
Antiguo 25/02/2008, 17:20
Avatar de bandolera_triste  
Fecha de Ingreso: noviembre-2007
Mensajes: 136
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Modificar un script para renombrar un archivo

estos warning a mi parecer aparecen porke tenog un script conexion.php ke es llamado con un include.. en cada script ke necesito
y pues no se ke onda?
ayudenme si
sera el php o el mysql?? cual kreen?

Warning: include(conexion.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\maravillas\sistema\fotografias\ing resar_r.php on line 4

Warning: include() [function.include]: Failed opening 'conexion.php' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\maravillas\sistema\fotografias\ing resar_r.php on line 4

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\maravillas\sistema\fotografias\ing resar_r.php on line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\maravillas\sistema\fotografias\ing resar_r.php on line 5

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\maravillas\sistema\fotografias\ing resar_r.php on line 6
DSC00429.JPGEl archivo ha sido cargado correctamente.Los datos han sido introducidos satisfactoriamenteVOLVER AL FORMULARIO
  #11 (permalink)  
Antiguo 05/04/2008, 20:41
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Modificar un script para renombrar un archivo

ellos tienen version php4

http://www.phperu.net/phpimagen/index.php?home=php4
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
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 17:26.