Foros del Web » Programando para Internet » PHP »

Cambiar el Nombre de una imagen al momento de subirla

Estas en el tema de Cambiar el Nombre de una imagen al momento de subirla en el foro de PHP en Foros del Web. Hola Amigos, he buscado la manera de como cambiar el nombre de una imagen al momento de que se sube al servidor con php pero ...
  #1 (permalink)  
Antiguo 28/12/2011, 22:12
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 8 meses
Puntos: 2
Pregunta Cambiar el Nombre de una imagen al momento de subirla

Hola Amigos, he buscado la manera de como cambiar el nombre de una imagen al momento de que se sube al servidor con php pero como soy principiante no he entendido del todo como se hace, la idea es que cuando en mi base de datos de mysql ingrese los datos de un nuevo producto y la persona elija una imagen para dicho producto el servidor le cambie el nombre por ejemplo si el producto nuevo que se va a crear le corresponde el ID numero 150 que la imagen se guarde en el servidor como 150.jpg, yo ya he logrado guardar la imagen pero no logro cambiarle el nombre, de momento lo que he estado haciendo es una consulta a la tabla para que me muestre el numero siguiente de ID de los productos para que asi sepa que debe tener mi imagen, este es el código:

Formulario:

Código HTML:
Ver original
  1. <form id="form1" name="form1" method="post" action="procesarproductonuevo.php" enctype="multipart/form-data">
  2.       <table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
  3.         <tr>
  4.           <td colspan="3" align="center" bgcolor="#000000" class="redondo"><h2>INGRESE UN PRODUCTO NUEVO</h2></td>
  5.           </tr>
  6.         <tr>
  7.           <td width="217">&nbsp;</td>
  8.           <td width="683">&nbsp;</td>
  9.           <td width="683">&nbsp;</td>
  10.         </tr>
  11.         <tr>
  12.           <td><label for="codigo">
  13.           <p>&nbsp;</p>
  14.           </label></td>
  15.           <td>&nbsp;</td>
  16.           <td>&nbsp;</td>
  17.         </tr>
  18.         <tr>
  19.           <td><label for="nombre">
  20.           <p><span class="margeiz">Nombre:</span> <span class="estilo2">*</span></p>
  21.           </label></td>
  22.           <td><input name="nombre" type="text" class="estilo1" id="nombre" size="55" /></td>
  23.           <td rowspan="5" valign="top"><p><span class="margeiz">Imagen:</span><span class="estilo2">*</span></p>
  24.             <p class="margeiz2">La imagen debe estar en formato &quot;JPG&quot; y antes de subirla debe tener el siguiente nombre <?php echo "<font color='#990000'>".$total.".jpg</font>"; ?> del lo contrario no se adjuntar&aacute; la imagen al nuevo producto.</p>
  25.             <p class="margeiz2"><input name='imagen' type='file' id="imagen" /></p></td>
  26.         </tr>
  27.         <tr>
  28.           <td><label for="precioventa">
  29.           <p><span class="margeiz">Precio Venta:</span> <span class="estilo2">*</span></p>
  30.           </label></td>
  31.           <td><input name="precioventa" type="text" class="estilo1" id="precioventa" size="55" /></td>
  32.           </tr>
  33.         <tr>
  34.           <td><label for="costo">
  35.           <p><span class="margeiz">Costo:</span> <span class="estilo2">*</span></p>
  36.           </label></td>
  37.           <td><input name="costo" type="text" class="estilo1" id="costo" size="55" /></td>
  38.           </tr>
  39.         <tr>
  40.           <td><label for="existencia">
  41.           <p><span class="margeiz">Existencia:</span> <span class="estilo2">*</span></p>
  42.           </label></td>
  43.           <td><input name="existencia" type="text" class="estilo1" id="existencia" size="55" /></td>
  44.           </tr>
  45.         <tr>
  46.           <td><label for="categoria">
  47.           <p><span class="margeiz">Categor&iacute;a:</span> <span class="estilo2">*</span></p>
  48.           </label></td>
  49.           <td><select name="categoria" class="estilo1" id="categoria">
  50.             <option selected="selected" value="">[Elija una Categor&iacute;a]</option>
  51.             <?php
  52.            
  53.                 while($fila = mysql_fetch_array($rst_categorias)){
  54.                     echo "<option value='".$fila["catnombre"]."'>".$fila["catnombre"]."</option>";
  55.                     }
  56.                 mysql_close($conexion);
  57.            
  58.             ?>
  59.           </select></td>
  60.           </tr>
  61.         <tr>
  62.           <td valign="top"><label for="observaciones">
  63.           <p class="margeiz">Observaciones:</p>
  64.           </label></td>
  65.           <td><textarea name="observaciones" cols="55" rows="5" class="estilo1" id="observaciones"></textarea></td>
  66.           <td>&nbsp;</td>
  67.         </tr>
  68.         <tr>
  69.           <td>&nbsp;</td>
  70.           <td class="estilo2">*Campos requeridos</td>
  71.           <td class="estilo2">&nbsp;</td>
  72.         </tr>
  73.         <tr>
  74.           <td>&nbsp;</td>
  75.           <td><input name="button" type="submit" class="estilo1" id="button" value="Nuevo" /></td>
  76.           <td>&nbsp;</td>
  77.         </tr>
  78.       </table>
  79.     </form>

[COLOR="rgb(139, 0, 0)"]Este es el archivo php que procesa la información:[/COLOR]

Código PHP:
Ver original
  1. <?php
  2.  
  3.     //Validar los datos del formulario
  4.    
  5.     if($_POST['nombre']==""||$_POST['precioventa']==""||$_POST['costo']==""||$_POST['existencia']==""||$_POST['categoria']==""){
  6.         echo "Ha dejado Campos vacÃ*os, asegurese de llenar los campos requeridos";
  7.         echo "<br /><a href='javascript:history.go(-1)'>Regresar</a>";
  8.         exit();
  9.         }
  10.     //Incluir mi conexion a la base de datos   
  11.     include("coneccion.php");
  12.     //Capturo los datos del formulario
  13.     $nombre = @$_POST['nombre'];
  14.     $preven = @$_POST['precioventa'];
  15.     $costo = @$_POST['costo'];
  16.     $existencia = @$_POST['existencia'];
  17.     $categoria = @$_POST['categoria'];
  18.     $observacion = @$_POST['observaciones'];
  19.     //Inserto los datos en la tabla
  20.     mysql_query("INSERT INTO productos(pronombre, proprecioventa, procosto, proexistencia, procategoria, proobservacion) VALUES('$nombre','$preven','$costo','$existencia','$categoria','$observacion')");
  21.    
  22.     if(mysql_errno()!=0){
  23.         echo "Error ".mysql_errno()."-".mysql_error();
  24.         mysql_close($conexion);
  25.         }
  26.     else{
  27.         mysql_close($conexion);
  28.         header("Location:productos.php");
  29.         }
  30.     //Capturo los datos de la imagen cargada
  31.     $archivo = $_FILES['imagen'];
  32.     $nombrefile = $_FILES['imagen']['name'];
  33.     $rutatmp = $_FILES['imagen']['tmp_name'];
  34.     $rutanueva = "images/".$nombrefile;
  35.     //Guardo la imagen
  36.     if(is_uploaded_file($rutatmp)) {
  37.         copy($rutatmp, $rutanueva);
  38.     }
  39.  
  40. ?>

Muchas gracias por su ayuda.
  #2 (permalink)  
Antiguo 29/12/2011, 10:04
Avatar de jolie_girl  
Fecha de Ingreso: agosto-2008
Ubicación: mexico
Mensajes: 346
Antigüedad: 16 años, 2 meses
Puntos: 10
Respuesta: Cambiar el Nombre de una imagen al momento de subirla

$nombrefile = $_FILES['imagen']['name'];

borra eso

$nombrefile ="elnombrquetuquieras"

para obtener el ultimo id al insertar es
$id=LAST_INSERT_ID();

selo concatenas a nombre

creo que es asi

$id=mysql_insert_id();
__________________
Solicito colaboradoras para proyecto social media largo plazo. Manda mp
  #3 (permalink)  
Antiguo 29/12/2011, 12:43
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Cambiar el Nombre de una imagen al momento de subirla

Muchas Gracias me funciono de maravilla gracias.

jolie_girl

Etiquetas: datos..., html, formulario
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 11:25.