Foros del Web » Programando para Internet » PHP »

Subir una imagen y renombrarla

Estas en el tema de Subir una imagen y renombrarla en el foro de PHP en Foros del Web. Hola a todos, tengo un codigo que me funciona bien aqui lo pongo if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO usuarios ...
  #1 (permalink)  
Antiguo 25/05/2009, 15:22
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Subir una imagen y renombrarla

Hola a todos, tengo un codigo que me funciona bien aqui lo pongo

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO usuarios (nombre, sexo, localidad, imagen, nick, email, contra, busco) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['sexo'], "text"),
GetSQLValueString($_POST['localidad'], "text"),
GetSQLValueString($_FILES['imagen'] ['name'], "text"),
GetSQLValueString($_POST['nick'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['contra'], "text"),
GetSQLValueString($_POST['aquibusco'], "text"));
$copy = copy($_FILES['imagen']['tmp_name'], "archivos/" . $_FILES['imagen']['name']);

mysql_select_db($database_quedada, $quedada);
$Result1 = mysql_query($insertSQL, $quedada) or die(mysql_error());

lo que hace es poner el nombre de la foto en la base de datos y subir la imagen a una carpeta que se llama "archivos". aqui tengo 2 problemas.
Primer problema, que no se como decirle a la sentencia que en vez de escribirme solo el nombre de la foto, tambien me incluya el nombre del directorio. Ahora me pone esto en la base de datos: si la imagen se llama "pepe.jpg" me "escribe" pepe.jpg pero no se como decirle que me escriba archivos/pepe.jpg.
Otro problema que le veo es que si hay 2 fotos con el mismo nombre me machaca la que hay. Alguien me podría decir como resolver esto?. Muchas gracias
  #2 (permalink)  
Antiguo 25/05/2009, 15:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Subir una imagen y renombrarla

Hola visona,

Para tu primer problema, en esta parte: GetSQLValueString($_FILES['imagen'] ['name'], "text"), tu especificas el nombre del archivo, en dado caso puedes especificar un string extra como: GetSQLValueString("archivos/" . $_FILES['imagen'] ['name'], "text").

Tu segunda duda tienes que usar la funcion file_exists para comprobar que el archivo exista y en dado caso renombrarla.

Saludos.
  #3 (permalink)  
Antiguo 25/05/2009, 16:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Subir una imagen y renombrarla

Ok, segun he entendido seria esto...

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO usuarios (nombre, sexo, localidad, imagen, nick, email, contra, busco) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['sexo'], "text"),
GetSQLValueString($_POST['localidad'], "text"),
GetSQLValueString($_POST['imagen'] ['name'], "text"),
GetSQLValueString("archivos/" . $_FILES['imagen'] ['name'], "text"),
GetSQLValueString($_POST['nick'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['contra'], "text"),
GetSQLValueString($_POST['aquibusco'], "text"));

mysql_select_db($database_quedada, $quedada);
$Result1 = mysql_query($insertSQL, $quedada) or die(mysql_error());

En rojo donde deberia ir el string, asi creo entender que pondría en el campo imagen "archivos/pepe.jpg

La segunda parte tambien la tengo clara, pero como renombrarla?, o sea por ejemplo que le asignara al nombre por ejemplo un numero aleatorio de 4 cifras+el nombre de la foto o algo asi o simpelmente un numero de 6 cifras. y si ya no te importa si me pones un ejemplo, ya rematarias.
Gracias por tu ayuda
  #4 (permalink)  
Antiguo 26/05/2009, 02:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Subir una imagen y renombrarla

Cita:
Iniciado por visona Ver Mensaje
Listo funciona correctamente, ya ves la chorrada que era y yo em volvi loco con manuales y esas cosas. Muchas gracias. Ahora solo me falta lo de renombrar las imagenes.

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO usuarios (nombre, sexo, localidad, imagen, nick, email, contra, busco) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['sexo'], "text"),
GetSQLValueString($_POST['localidad'], "text")
GetSQLValueString("archivos/" . $_FILES['imagen'] ['name'], "text"),
GetSQLValueString($_POST['nick'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['contra'], "text"),
GetSQLValueString($_POST['aquibusco'], "text"));

mysql_select_db($database_quedada, $quedada);
$Result1 = mysql_query($insertSQL, $quedada) or die(mysql_error());

En rojo donde deberia ir el string, asi creo entender que pondría en el campo imagen "archivos/pepe.jpg

Gracias por tu ayuda
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 23:10.