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<form id="form1" name="form1" method="post" action="procesarproductonuevo.php" enctype="multipart/form-data"> <table width="900" border="0" align="center" cellpadding="0" cellspacing="0"> <td colspan="3" align="center" bgcolor="#000000" class="redondo"><h2>INGRESE UN PRODUCTO NUEVO
</h2></td> <td width="217"> </td> <td width="683"> </td> <td width="683"> </td> <td><input name="nombre" type="text" class="estilo1" id="nombre" size="55" /></td> <td rowspan="5" valign="top"><p><span class="margeiz">Imagen:
</span><span class="estilo2">*
</span></p> <p class="margeiz2">La imagen debe estar en formato
"JPG
" y antes de subirla debe tener el siguiente nombre
<?php echo "<font color='#990000'>".$total.".jpg
</font>"; ?> del lo contrario no se adjuntar
á la imagen al nuevo producto.
</p> <p class="margeiz2"><input name='imagen' type='file' id="imagen" /></p></td> <td><input name="precioventa" type="text" class="estilo1" id="precioventa" size="55" /></td> <td><input name="costo" type="text" class="estilo1" id="costo" size="55" /></td> <td><input name="existencia" type="text" class="estilo1" id="existencia" size="55" /></td> <td><select name="categoria" class="estilo1" id="categoria"> <option selected="selected" value="">[Elija una Categor
ía]
</option> <?php
while($fila = mysql_fetch_array($rst_categorias)){
echo "<option value='".$fila["catnombre"]."'>".$fila["catnombre"]."
</option>";
}
mysql_close($conexion);
?>
<td valign="top"><label for="observaciones"> <p class="margeiz">Observaciones:
</p> <td><textarea name="observaciones" cols="55" rows="5" class="estilo1" id="observaciones"></textarea></td> <td class="estilo2">*Campos requeridos
</td> <td class="estilo2"> </td> <td><input name="button" type="submit" class="estilo1" id="button" value="Nuevo" /></td>
[COLOR="rgb(139, 0, 0)"]Este es el archivo php que procesa la información:[/COLOR]
Código PHP:
Ver original<?php
//Validar los datos del formulario
if($_POST['nombre']==""||$_POST['precioventa']==""||$_POST['costo']==""||$_POST['existencia']==""||$_POST['categoria']==""){
echo "Ha dejado Campos vacÃ*os, asegurese de llenar los campos requeridos";
echo "<br /><a href='javascript:history.go(-1)'>Regresar</a>";
}
//Incluir mi conexion a la base de datos
include("coneccion.php");
//Capturo los datos del formulario
$nombre = @$_POST['nombre'];
$preven = @$_POST['precioventa'];
$costo = @$_POST['costo'];
$existencia = @$_POST['existencia'];
$categoria = @$_POST['categoria'];
$observacion = @$_POST['observaciones'];
//Inserto los datos en la tabla
mysql_query("INSERT INTO productos(pronombre, proprecioventa, procosto, proexistencia, procategoria, proobservacion) VALUES('$nombre','$preven','$costo','$existencia','$categoria','$observacion')");
}
else{
header("Location:productos.php"); }
//Capturo los datos de la imagen cargada
$archivo = $_FILES['imagen'];
$nombrefile = $_FILES['imagen']['name'];
$rutatmp = $_FILES['imagen']['tmp_name'];
$rutanueva = "images/".$nombrefile;
//Guardo la imagen
copy($rutatmp, $rutanueva); }
?>
Muchas gracias por su ayuda.