Foros del Web » Programando para Internet » PHP »

Subir imagenes a mi página y renombrarlas

Estas en el tema de Subir imagenes a mi página y renombrarlas en el foro de PHP en Foros del Web. Buenos dias!!! Tengo una página con usuarios que pueden subir imagenes. El primer problema que tengo es que las imagenes con mismo nombre son reemplazadas.. ...
  #1 (permalink)  
Antiguo 14/11/2011, 08:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 10
Antigüedad: 15 años, 1 mes
Puntos: 0
Subir imagenes a mi página y renombrarlas

Buenos dias!!!

Tengo una página con usuarios que pueden subir imagenes. El primer problema que tengo es que las imagenes con mismo nombre son reemplazadas..

Lo que me gustaria es que la foto se renombre (lei por ahi, que con time o algo llamado md5 se podia) y se guarde la nueva ruta en la bd con el nuevo nombre.

Les paso mi código aver si me puden ayudar. son 2 paginas.

ARCHIVO 1: subefotos.php
(en el que selecciono la foto en un formulario)
<form action="fotos/uploadfoto1.php?productoid=<?php echo $row_Recordset2['productoid'];?>" method="post" enctype="multipart/form-data" name="formu" id="formu">
<input name="archivo" type="file" size="1" />
<input name="productoid" type="hidden" id="productoid" value="<?php echo $row_Recordset2['productoid']; ?>">
<input type="submit" value="Subir" id="envia2" name="envia2" />
</form>

ARCHIVO 1: uploadfoto1.php
(el que sube el archivo y guarda el nombre en la bd)
<?php

if (isset ($_FILES["archivo"])) {
$tmp_name = $_FILES["archivo"]["tmp_name"];
$name = $_FILES["archivo"]["name"];
$newfile = $name;
if (is_uploaded_file($tmp_name));
if (!copy($tmp_name,"$newfile")) {
print "Archivo subido OK.";
exit();
} // if copy
}// if is_up...
?>
El formulario de abajo es para "confirmar" y así poder guardar la ruta en la BD.
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
<input type="hidden" name="foto2" value="fotos/<?php echo $name; ?>" size="32">
<input type="submit" value="Confirmar">
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="productoid" value="<?php echo $row_Recordset1['productoid']; ?>">
</form>
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE productos SET foto2=%s WHERE productoid=%s",
GetSQLValueString($_POST['foto2'], "text"),
GetSQLValueString($_POST['productoid'], "int"));

mysql_select_db($database_concesionarias, $concesionarias);
$Result1 = mysql_query($updateSQL, $concesionarias) or die(mysql_error());

MIS PREGUNTAS ENTONCES
1)Donde tendria que agregar el código que fuere necesario para renombrar el archivo.
2)Como hago para que se guarde en la bd con ese nombre

Gracias!!!!


Saludos,
Martin
  #2 (permalink)  
Antiguo 14/11/2011, 08:58
 
Fecha de Ingreso: agosto-2011
Ubicación: Viña del Mar, Chile
Mensajes: 311
Antigüedad: 12 años, 7 meses
Puntos: 50
Respuesta: Subir imagenes a mi página y renombrarlas

Hola,
Para cambiar el nombre del archivo debes renombralo con rand, te adjunto el código y una página en la cuál se explica el proceso para subir el archivo al servidor y la BD.
mira esto:
Código PHP:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 
  
////////////// Parte añadida 1 //////////////
  //array de archivos disponibles
  
$archivos_disp_ar = array('jpg''jpeg''gif''png');
  
//carpteta donde vamos a guardar la imagen
  
$carpeta 'imagenes/';
  
//recibimos el campo de imagen
  
$imagen $_FILES['imagen']['tmp_name'];
  
//guardamos el nombre original de la imagen en una variable
  
$nombrebre_orig $_FILES['imagen']['name'];
  
//el proximo codigo es para ver que extension es la imagen
  
$array_nombre explode('.',$nombrebre_orig);
  
$cuenta_arr_nombre count($array_nombre);
  
$extension strtolower($array_nombre[--$cuenta_arr_nombre]);
 
  
//validamos la extension
  
if(!in_array($extension$archivos_disp_ar)) $error "Este tipo de archivo no es permitido";
 
  if(empty(
$error)){
 
      
//creamos nuevo nombre para que tenga nombre unico
      
$nombre_nuevo time().'_'.rand(0,100).'.'.$extension;
      
//nombre nuevo con la carpeta
      
$nombre_nuevo_con_carpeta $carpeta.$nombre_nuevo;
      
//por fin movemos el archivo a la carpeta de imagenes
      
$mover_archivos move_uploaded_file($imagen $nombre_nuevo_con_carpeta);
      
//de damos permisos 777
      
chmod($nombre_nuevo_con_carpeta,0777);
 
      
///////////////////////////////////////////
 
       // se agrega "archivo_archivos, extension_archivos y la fecha" a la consulta y dos extra %s separados por comas
      
$insertSQL sprintf("INSERT INTO archivos (tipo_archivos, nombre_archivos, archivo_archivos, extension_archivos, fecha_archivos) VALUES (%s, %s, %s, %s, NOW())",
                           
GetSQLValueString($_POST['tipo'], "text"),
                           
GetSQLValueString($_POST['nombre'], "text"),
                           
////////////// Parte añadida //////////////
                           
GetSQLValueString($nombre_nuevo"text"),
                           
GetSQLValueString($extension"text"))
                           
///////////////////////////////////////////
                           
;
 
      
mysql_select_db('NOMBRE DE TU DATABASE''NOMBRE DE TU CONNECCION AQUI');
      
$Result1 mysql_query($insertSQL'INCLUIR TU CONNECCION AQUI') or die(mysql_error());
    }


La explicación está aquí,(no tomes en cuenta lo que dice relación con DW)
http://juaniquillo.com/blog/2010/07/...r-php-y-mysql/
Saludos
  #3 (permalink)  
Antiguo 14/11/2011, 12:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 10
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Subir imagenes a mi página y renombrarlas

Muchas gracias por tu respuesta snowmanchip!!!

lo de renombrarla y guardar la ruta en la bd me quedó perfecto....el unico problemita q estoy teniendo es q no sube la imagen al servidor.

en un momento me decia algo como "warning move_uploaded_file no such directory"...ahora no me lo dice más pero el archivo no sube.

Alguna idea de porq puede ser??
  #4 (permalink)  
Antiguo 14/11/2011, 13:19
 
Fecha de Ingreso: agosto-2011
Ubicación: Viña del Mar, Chile
Mensajes: 311
Antigüedad: 12 años, 7 meses
Puntos: 50
Respuesta: Subir imagenes a mi página y renombrarlas

modifica los permisos chmod en tu servidor a 777, espero te sea de utilidad. Avisa si eso te resuelve el problema,
Saludos
  #5 (permalink)  
Antiguo 16/11/2011, 10:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 10
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Subir imagenes a mi página y renombrarlas

La verdad es un misterio...ya envié mi consulta al Hosting porque las carpetas estan con permiso 777 para ejecutar leer y escribir todo y me dijeron que no saben.
De hecho con mi formulario anterior subian las fotos...pero sin renombrarlas ni nada...con el nombre original.
Tendré que seguir investigando....igual muchas gracias! el formulario ese anda perfecto...el problema es mio jajajaj
  #6 (permalink)  
Antiguo 16/11/2011, 10:37
 
Fecha de Ingreso: agosto-2011
Ubicación: Viña del Mar, Chile
Mensajes: 311
Antigüedad: 12 años, 7 meses
Puntos: 50
Respuesta: Subir imagenes a mi página y renombrarlas

Hola...
Puede ser un problema con las rutas ..cuidado con los directorios ../ , también puede ser que no modificaste los permisos a la carpeta madre o a una de las hijas del directorio al que estás subiendo los archivos. Si no te funciona pon tu código en el post..
Saludos
  #7 (permalink)  
Antiguo 16/11/2011, 11:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 10
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Subir imagenes a mi página y renombrarlas

Loco sos un genio no se como agradecerte!!!!
el problema q tenia es el siguiente:
mi error estaba en la parte :
Código PHP:
Ver original
  1. $carpeta = 'fotos/';

como vos me dijiste era la ruta. Tenía que salir de la carpeta en la que estaba para ir a la de fotos.

Entonces quedó
Código PHP:
Ver original
  1. $carpeta = '../fotos/';

Increible snowmanchip muchas gracias de nuevo.....no puedo explicar mi alegria de que haya alguien del otro lado que de onda te ayude a salvar las papas.

Gracias snowmanchip y gracias Forosdelweb!!
  #8 (permalink)  
Antiguo 16/11/2011, 11:12
 
Fecha de Ingreso: agosto-2011
Ubicación: Viña del Mar, Chile
Mensajes: 311
Antigüedad: 12 años, 7 meses
Puntos: 50
Respuesta: Subir imagenes a mi página y renombrarlas

No exageres..XD...ya me había pasado y también me había roto la cabeza revisando qué era..
Saludos

Etiquetas: formulario, imagenes, mysql, página, sql, usuarios
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 14:10.