Foros del Web » Programando para Internet » PHP »

no renombrar la imagen k subo a mi server

Estas en el tema de no renombrar la imagen k subo a mi server en el foro de PHP en Foros del Web. antes de nada os dejo el codigo Cita: <? if($_POST){ // Creamos la cadena aletoria $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890"; $cad = ""; for($i=0;$i<12;$i++) { $cad ...
  #1 (permalink)  
Antiguo 21/08/2010, 05:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 253
Antigüedad: 15 años, 10 meses
Puntos: 8
no renombrar la imagen k subo a mi server

antes de nada os dejo el codigo
Cita:
<?
if($_POST){
// Creamos la cadena aletoria
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890";
$cad = "";
for($i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}
// Fin de la creacion de la cadena aletoria
$tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="50000000000"; // Tamaño maximo permitido
if( $tamano < $tamaño_max){ // Comprovamos el tamaño
$destino = 'imagenes' ; // Carpeta donde se guardata
$sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
$tipo=$sep[1]; // Optenemos el tipo de imagen que es
if($tipo == "gif" || $tipo == "jpeg" || $tipo == "bmp"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$cad.'.'.$tipo); // Subimos el archivo
include('post.html'); // Incluimos la plantilla
}
else echo "el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos
}
else echo "El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos
}
?>
form.html

Cita:
<script>
function ver(image){
document.getElementById('image').innerHTML = "<img src='"+image+"'>"
}
</script>
<form action="sube.php" method="post" enctype="multipart/form-data">
Archivo: <input name="file" type="file" onChange="ver(form.file.value)">
<input name="submit" type="submit" value="Upload!">
</form><br> <span id="image"></span>
Lo que quiero es que no me renombre el archivo es decir, si la imagen k tengo en mi pc es imagen1 k me la suba como imagen 1

Gracias

Última edición por gomminola; 21/08/2010 a las 05:47
  #2 (permalink)  
Antiguo 21/08/2010, 06:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 3
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: no renombrar la imagen k subo a mi server

Buenas,

El problema lo tienes en que estas generando un nombre aleatorio en la variable $cad para dárselo después al archivo que subes.

Código PHP:
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' .$cad.'.'.$tipo); 
Si quieres mantener el mismo nombre, deberías utilizar $_FILES["file"]["name"], que es la que guarde el nombre original


Código PHP:
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' .$_FILES["file"]["name"]); 

Ten cuidado al hacer esto porque si subes dos imágenes con el mismo nombre, la ultima reemplazara a la primera

Saludos
  #3 (permalink)  
Antiguo 21/08/2010, 06:51
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: no renombrar la imagen k subo a mi server

Hola

No entiendo cual es el problema. Ha de ser que has copiado el script y no lo entiendes. Un poco de lectura

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 21/08/2010, 07:49
Avatar de dedydamy  
Fecha de Ingreso: marzo-2010
Ubicación: Aca :D
Mensajes: 78
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: no renombrar la imagen k subo a mi server

Cambia esto
Código PHP:
Ver original
  1. // Creamos la cadena aletoria
  2. $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890";
  3. $cad = "";
  4. for($i=0;$i<12;$i++) {
  5. $cad .= substr($str,rand(0,62),1);
  6. }

por esto
Código PHP:
Ver original
  1. $cad = substr(md5(uniqid(rand())),0,3);
  2. $name=explode(".",$_FILES["file"]["name"]);

y cambia esta linea
Código PHP:
Ver original
  1. move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$cad.'.'.$tipo); // Subimos el archivo

por esta

Código PHP:
Ver original
  1. move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' . $name[0].'-'.$cad.'.'.$tipo); // Subimos el archivo
__________________
http://dedydamy.com/

Etiquetas: renombrar, server
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 19:51.