Problema con formulario PHP y upload de imagen
Bueno, estoy haciendo un formulario con un upload de imagen jpg. El problema es que intento hacer que ese jpg, en vez de subirse con el nombre que el usuario le ha puesto, quiero que se suba al server con el nombre de la ID de la consulta, ejemplo:
ID Nombre Apellido Imagen
1 Oscar Jara 1_24/06/2010_11:30:05.jpg
En la DB, el nombre de la imagen esta compuesto por el ID, fecha y hora y la extension
Pero, en el server quiero que se guarde como 1.jpg ya que el ID de esa consulta fue 1. Y eso es lo que no logro hacer, acá esta parte de mi código php y espero me puedas ayudar.
<?php
if (isset($_POST['validar'])) {
$link = mysql_connect('localhost', 'user', 'pass');
mysql_select_db('db', $link);
$sql = "SELECT MAX(ID) FROM inscritos";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$max_id = $row[0]+1; //captura el ultimo ID y le agrega 1 para ser el ID actual
$evento=$_POST['evento'];
$nombres=$_POST['nombres'];
$apellidos=$_POST['apellidos'];
$empresa=$_POST['empresa'];
$cargo=$_POST['cargo'];
$direccion=$_POST['direccion'];
$telefono=$_POST['telefono'];
$datetime = date("d/m/Y_H:i:s");
$upload_dir = '/home/netline/public_html/vouchers/';
$upload_file = $upload_dir.$max_id.".jpg";
$extension = $_FILES['voucher']['type'];
$size = $_FILES['voucher']['size'];
$voucher_namedb = $max_id."_".$datetime.".jpg";
if ($evento.trim != "" &&
$voucher.trim != "" &&
$extension == "image/jpeg" &&
$size < 204800 &&
$nombres.trim != "" &&
$apellidos.trim != "" &&
$empresa.trim != "" &&
$cargo.trim != "" &&
$direccion.trim != "" &&
$telefono.trim != "")
{
move_uploaded_file($_FILES['voucher']['tmp_name'], $upload_file);
mysql_query("INSERT INTO inscritos (Evento,Voucher,Nombres,Apellidos,Empresa,Cargo,Direccion,Telefono) VALUES ('$evento','$voucher','$nombres','$apellidos','$empresa','$cargo','$direccion','$telefono')",$link);
mysql_close($link);
El código php continua pero lo demás no tiene importancia. Por otro lado, el script ya lo he probado y funciona muy bien al usar en la variable upload file lo siguiente:
$upload_file = $upload_dir.$_FILES['voucher']['name'];
Ya que, lo que realiza es guardar el file con el nombre que el usuario le puso y a la DB como yo lo quiero, espero me puedan ayudar... Ya he intentado muchas formas y no lo logro, entre ellas use la función rename, entre otras como if_file_exists pero nada Y LO ÚNICO QUE QUIERO ES GUARDAR LA IMAGEN CON EL ID DE LA CONSULTA, SALUDOS!
ID Nombre Apellido Imagen
1 Oscar Jara 1_24/06/2010_11:30:05.jpg
En la DB, el nombre de la imagen esta compuesto por el ID, fecha y hora y la extension
Pero, en el server quiero que se guarde como 1.jpg ya que el ID de esa consulta fue 1. Y eso es lo que no logro hacer, acá esta parte de mi código php y espero me puedas ayudar.
<?php
if (isset($_POST['validar'])) {
$link = mysql_connect('localhost', 'user', 'pass');
mysql_select_db('db', $link);
$sql = "SELECT MAX(ID) FROM inscritos";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$max_id = $row[0]+1; //captura el ultimo ID y le agrega 1 para ser el ID actual
$evento=$_POST['evento'];
$nombres=$_POST['nombres'];
$apellidos=$_POST['apellidos'];
$empresa=$_POST['empresa'];
$cargo=$_POST['cargo'];
$direccion=$_POST['direccion'];
$telefono=$_POST['telefono'];
$datetime = date("d/m/Y_H:i:s");
$upload_dir = '/home/netline/public_html/vouchers/';
$upload_file = $upload_dir.$max_id.".jpg";
$extension = $_FILES['voucher']['type'];
$size = $_FILES['voucher']['size'];
$voucher_namedb = $max_id."_".$datetime.".jpg";
if ($evento.trim != "" &&
$voucher.trim != "" &&
$extension == "image/jpeg" &&
$size < 204800 &&
$nombres.trim != "" &&
$apellidos.trim != "" &&
$empresa.trim != "" &&
$cargo.trim != "" &&
$direccion.trim != "" &&
$telefono.trim != "")
{
move_uploaded_file($_FILES['voucher']['tmp_name'], $upload_file);
mysql_query("INSERT INTO inscritos (Evento,Voucher,Nombres,Apellidos,Empresa,Cargo,Direccion,Telefono) VALUES ('$evento','$voucher','$nombres','$apellidos','$empresa','$cargo','$direccion','$telefono')",$link);
mysql_close($link);
El código php continua pero lo demás no tiene importancia. Por otro lado, el script ya lo he probado y funciona muy bien al usar en la variable upload file lo siguiente:
$upload_file = $upload_dir.$_FILES['voucher']['name'];
Ya que, lo que realiza es guardar el file con el nombre que el usuario le puso y a la DB como yo lo quiero, espero me puedan ayudar... Ya he intentado muchas formas y no lo logro, entre ellas use la función rename, entre otras como if_file_exists pero nada Y LO ÚNICO QUE QUIERO ES GUARDAR LA IMAGEN CON EL ID DE LA CONSULTA, SALUDOS!
Respuesta de Jorge Vila
1