Foros del Web » Programando para Internet » PHP »

Subir Varias y imagenes y renombrarlas con php

Estas en el tema de Subir Varias y imagenes y renombrarlas con php en el foro de PHP en Foros del Web. Buenas tardes. Tengo un Sistema Para subir imagenes en mi base de datos con PHP pero quiero renombrarlas ya que cuando subo una con el ...
  #1 (permalink)  
Antiguo 08/08/2015, 16:29
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Subir Varias y imagenes y renombrarlas con php

Buenas tardes. Tengo un Sistema Para subir imagenes en mi base de datos con PHP pero quiero renombrarlas ya que cuando subo una con el mismo nombre me las reemplaza, quisiera saber qué debo agregarle a mi codigo para que me genere un nombre consecutivo a las imagenes:

Este es mi código

Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <head>
  3.     <meta charset="utf-8">
  4.     <title>Subir una o varias imagenes al servidor</title>
  5. </head>
  6.  
  7. <body>
  8.     <?php
  9.     # definimos la carpeta destino
  10.    $carpetaDestino="fotos/";
  11.  
  12.     # si hay algun archivo que subir
  13.    if($_FILES["archivo"]["name"][0])
  14.     {
  15.  
  16.         # recorremos todos los arhivos que se han subido
  17.        for($i=0;$i<count($_FILES["archivo"]["name"]);$i++)
  18.         {
  19.  
  20.             # si es un formato de imagen
  21.            if($_FILES["archivo"]["type"][$i]=="image/jpeg" || $_FILES["archivo"]["type"][$i]=="image/pjpeg" || $_FILES["archivo"]["type"][$i]=="image/gif" || $_FILES["archivo"]["type"][$i]=="image/png")
  22.             {
  23.  
  24.                 # si exsite la carpeta o se ha creado
  25.                if(file_exists($carpetaDestino) || @mkdir($carpetaDestino))
  26.                 {
  27.                     $origen=$_FILES["archivo"]["tmp_name"][$i];
  28.                     $destino=$carpetaDestino.$_FILES["archivo"]["name"][$i];
  29.  
  30.                     # movemos el archivo
  31.                    if(@move_uploaded_file($origen, $destino))
  32.                     {
  33.                         echo "<br>".$_FILES["archivo"]["name"][$i]." movido correctamente";
  34.                     }else{
  35.                         echo "<br>No se ha podido mover el archivo: ".$_FILES["archivo"]["name"][$i];
  36.                     }
  37.                 }else{
  38.                     echo "<br>No se ha podido crear la carpeta: up/".$user;
  39.                 }
  40.             }else{
  41.                 echo "<br>".$_FILES["archivo"]["name"][$i]." - NO es imagen jpg";
  42.             }
  43.         }
  44.     }else{
  45.         echo "<br>No se ha subido ninguna imagen";
  46.     }
  47.     ?>
  48.  
  49.     <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" enctype="multipart/form-data" name="inscripcion">
  50.         <input type="file" name="archivo[]" multiple="multiple"><br>
  51.         <input type="file" name="archivo[]" multiple="multiple"><br>
  52.         <input type="file" name="archivo[]" multiple="multiple"><br>
  53.         <input type="submit" value="Enviar"  class="trig">
  54.     </form>
  55. </body>
  56. </html>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #2 (permalink)  
Antiguo 08/08/2015, 16:45
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Subir Varias y imagenes y renombrarlas con php

yo subo uno y la renombro de esta manera, podrias adaptar el codigo a ver si te sirve:
Código PHP:
Ver original
  1. $nuevonombre = $rif."_".$unidad.".".$b;
  2.    
  3.     // Muevo la imagen desde su ubicación
  4.     // temporal al directorio definitivo
  5.     move_uploaded_file($_FILES['userfile']['tmp_name'],$directorio.$nuevonombre);
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 08/08/2015, 16:46
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Subir Varias y imagenes y renombrarlas con php

Cambia aquí esto:

Código PHP:
Ver original
  1. $origen=$_FILES["archivo"]["tmp_name"][$i];
  2.                     $destino=$carpetaDestino."archivo.jpg";

Reemplazando archivo.jpg por el nombre y extensión que quieras ponerle.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #4 (permalink)  
Antiguo 08/08/2015, 19:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Subir Varias y imagenes y renombrarlas con php

Para evitar repeticiones, podrías concatenar al nombre un token con caracteres aleatorios o, mejor aún, la fecha y hora en la que se sube el archivo, expresado en milésimas de segundo. De esta forma, los datos nunca se repetirán y aún alguien modificara la hora del servidor, las posibilidades de que se repitan siguen siendo muy bajas ya que tomarías el valor en milésimas de segundo y no como fecha y hora en el formato que utilizamos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 08/08/2015, 20:02
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Subir Varias y imagenes y renombrarlas con php

Alexis88 Cómo seria esa concatenación token o la fecha podrias indicarme en el codigo que proporcione a ver como sería, la verdad no tengo ni idea, es un sistema de subir muchisimas imagenes de los usuarios y no quiero que al subir una por ejemplo llamada imagen1.jpg reemplace una ya existente con ese mismo nombre y creando caos en sus publicaciones
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #6 (permalink)  
Antiguo 09/08/2015, 00:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Subir Varias y imagenes y renombrarlas con php

El tiempo actual en milésimas de segundo podrías tomarlo con cualquiera de las funciones de fecha y hora de PHP; una de ellas es la función microtime. Podrías también usar dicha marca de tiempo como nombre y lo concatenarías con la carpeta en la que se guardará y el tipo de archivo:

Código PHP:
Ver original
  1. $destino = $carpetaDestino . microtime(true) . '.' . $_FILES['archivo']['type'][$i];

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 09/08/2015 a las 23:33 Razón: Faltó una parte
  #7 (permalink)  
Antiguo 10/08/2015, 08:03
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Subir Varias y imagenes y renombrarlas con php

Como bien dice "Alexis88" se pueden usar las fecha y hora, esto te puede ayudar a generar un nombre mas aleatorio sumando el codigo de "Alexis88"

Código PHP:
$destino $carpetaDestino md5(microtime(true)) . '.' $_FILES['archivo']['type'][$i]; 
Saludos

Etiquetas: imagenes, mysql
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 22:45.