Foros del Web » Programando para Internet » PHP »

Problemas al intetar subir una imagen al servidor

Estas en el tema de Problemas al intetar subir una imagen al servidor en el foro de PHP en Foros del Web. Saludos, he escrito el codigo HTML para crear un formulario en el que se le pide al usuario que escriba sus datos personales y suba ...
  #1 (permalink)  
Antiguo 04/01/2009, 13:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 146
Antigüedad: 15 años, 8 meses
Puntos: 1
Problemas al intetar subir una imagen al servidor

Saludos,

he escrito el codigo HTML para crear un formulario en el que se le pide al usuario que escriba sus datos personales y suba una fotografia suya.

El codigo de aqui abajo me deberia copiar esa fotografia a una ruta que le indico (uploaded/image.gif) pero eso no ocurre...

Estoy intentando imprimir el nombre temporal del archivo de la fotografia antes de que se pase a la ruta que yo quiero, pero no se imprime nada...

He puesto permisos de escritura en la ruta donde se deberia alojar la imagen.

Alguien me ayuda?


Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

<title>subida_datos_registro</title>

<style type="text/css">


</style>

</head>

<body>

<?php

// Nos conectamos al servidor mysql.
mysql_connect("localhost""root""") OR die(mysql_error());

// Seleccionamos la base de datos "red_social".
mysql_select_db("red_social") OR die(mysql_error());


// Insertamos la imagen del formulario en "$ruta".
$ruta='uploaded/image.gif';
move_uploaded_file($_FILES['file']['tmp_name'],$ruta);

echo 
'$_FILES['file']['tmp_name']';


// Insertamos los datos provenientes del formulario de registro en la tabla "amigos".
mysql_query("insert into amigos (nombre, apellidos, email, telefono, domicilio, fecha_nacimiento, avatar) values('$nombre', '$apellidos','$email','$telefono','$domicilio','$fecha_nacimiento', '$ruta')") OR die(mysql_error());




?>

<div id="mensaje">

<?php
echo "Te has registrado correctamente"; echo "<br>";
echo 
"Para completar tu registro lee el correo que acabamos de enviar a tu cuenta de correo"
?>

</div>

</body></html>

Última edición por tirengarfio; 04/01/2009 a las 13:49
  #2 (permalink)  
Antiguo 04/01/2009, 13:54
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Problemas al intetar subir una imagen al servidor

¿Te has asegurado de ponerle a tu formulario enctype="multipart/form-data" ? algo asi:
Código:
<form  enctype="multipart/form-data" method="post" action="archivo.php">
  #3 (permalink)  
Antiguo 04/01/2009, 14:12
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problemas al intetar subir una imagen al servidor

hola

no es asi

echo '$_FILES['file']['tmp_name']';

si no asi

echo $_FILES['file']['tmp_name'];



Un saludo
  #4 (permalink)  
Antiguo 04/01/2009, 14:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 146
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problemas al intetar subir una imagen al servidor

Si. Aqui esta el codigo por si las moscas...


Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
  <title>formulario_reg</title>
  <style type="text/css">
#registros {
float: left;
text-align: right;
margin-right: 0px;
font-size: 0.87em;
padding-top: 0px;
height: 181px;
line-height: 1.85em;
padding-right: 7px;
width: 147px;
}
#casillas {
line-height: 1.6em;
}
#registros_y_casillas {
margin-top: 200px;
margin-left: 300px;
width: 377px;
}
  </style>
</head>
<body>
<div id="registros_y_casillas">
<div id="registros">Nombre<br>
Apellidos<br>
Email<br>
Telefono<br>
Domicilio<br>
Fecha de nacimiento <br>
Avatar</div>
<div id="casillas">
<form enctype="multipart/form-data" method="post"
 action="http://localhost/red_social/subida_datos_registro.php"
 name="formulario"><input name="nombre"><br>
  <input name="apellidos"><br>
  <input name="email"><br>
  <input name="telefono"><br>
  <input name="domicilio"><br>
  <input name="fecha_nac"><br>
  <input name="avatar" type="file"><br>
  <button value="subir" name="subir"></button><br>
</form>
</div>
</div>
</body>
</html> 
  #5 (permalink)  
Antiguo 04/01/2009, 14:21
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problemas al intetar subir una imagen al servidor

mira a ver si el problema es la ruta del action del form

dejala a si y prueba

action="red_social/subida_datos_registro.php"
  #6 (permalink)  
Antiguo 04/01/2009, 14:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 146
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problemas al intetar subir una imagen al servidor

Cita:
Iniciado por jaronu Ver Mensaje
hola

no es asi

echo '$_FILES['file']['tmp_name']';

si no asi

echo $_FILES['file']['tmp_name'];



Un saludo
Ok, gracias, lo acabo de cambiar pero no se imprime en pantalla el nombre temporal..deberia, no?
  #7 (permalink)  
Antiguo 04/01/2009, 14:22
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Problemas al intetar subir una imagen al servidor

creo que el problema ademas del que menciona jaronu, es que tu campo en el formulario se llama "avatar" pero en el php lo llamas asi: $_FILES['file']['tmp_name']............Te recomiendo que lo cambies a $_FILES['avatar']['tmp_name']
  #8 (permalink)  
Antiguo 04/01/2009, 14:25
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problemas al intetar subir una imagen al servidor

si

Ludwingg tiene razon, ese es tu problema

Un saludo
  #9 (permalink)  
Antiguo 04/01/2009, 14:26
Avatar de yeudiel  
Fecha de Ingreso: abril-2008
Ubicación: Ciudad de México
Mensajes: 78
Antigüedad: 16 años
Puntos: 1
Respuesta: Problemas al intetar subir una imagen al servidor

Cita:
Iniciado por tirengarfio Ver Mensaje
Saludos,

he escrito el codigo HTML para crear un formulario en el que se le pide al usuario que escriba sus datos ....

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

<title>subida_datos_registro</title>

<style type="text/css">


</style>

</head>

<body>

<?php

// Nos conectamos al servidor mysql.
mysql_connect("localhost""root""") OR die(mysql_error());

// Seleccionamos la base de datos "red_social".
mysql_select_db("red_social") OR die(mysql_error());


// Insertamos la imagen del formulario en "$ruta".
$ruta='uploaded/image.gif';
move_uploaded_file($_FILES['file']['tmp_name'],$ruta);

echo 
'$_FILES['file']['tmp_name']';


// Insertamos los datos provenientes del formulario de registro en la tabla "amigos".
mysql_query("insert into amigos (nombre, apellidos, email, telefono, domicilio, fecha_nacimiento, avatar) values('$nombre', '$apellidos','$email','$telefono','$domicilio','$fecha_nacimiento', '$ruta')") OR die(mysql_error());




?>

<div id="mensaje">

<?php
echo "Te has registrado correctamente"; echo "<br>";
echo 
"Para completar tu registro lee el correo que acabamos de enviar a tu cuenta de correo"
?>

</div>

</body></html>


Prueba poniendo <form action="" method="post" enctype="multipart/form-data"> sobre el form y con:



Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

<title>subida_datos_registro</title>

<style type="text/css">


</style>

</head>

<body>

<?php

// Nos conectamos al servidor mysql.
mysql_connect("localhost""root""") OR die(mysql_error());

// Seleccionamos la base de datos "red_social".
mysql_select_db("red_social") OR die(mysql_error());


// Insertamos la imagen del formulario en "$ruta".
$ruta='uploaded/';
move_uploaded_file ($_FILES'file' ][ 'tmp_name' ], $ruta.$_FILES 'file' ][ 'name' ]);

echo 
$_FILES['file']['name'];

// Insertamos los datos provenientes del formulario de registro en la tabla "amigos".
mysql_query("insert into amigos (nombre, apellidos, email, telefono, domicilio, fecha_nacimiento, avatar) values('$nombre', '$apellidos','$email','$telefono','$domicilio','$fecha_nacimiento', '$ruta')") OR die(mysql_error());

?>
<div id="mensaje">

<?
echo "Te has registrado correctamente"; echo "<br>";
echo 
"Para completar tu registro lee el correo que acabamos de enviar a tu cuenta de correo"
?>

</div>

</body></html>
Si deseas tambien tengo una funcion para subir imagenes y hacerle un previo (thumbnail) y una imagen con mejor calidad para detalles, y para agregarle una marca de agua
  #10 (permalink)  
Antiguo 04/01/2009, 14:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 146
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problemas al intetar subir una imagen al servidor

Cita:
Iniciado por Ludwingg Ver Mensaje
creo que el problema ademas del que menciona jaronu, es que tu campo en el formulario se llama "avatar" pero en el php lo llamas asi: $_FILES['file']['tmp_name']............Te recomiendo que lo cambies a $_FILES['avatar']['tmp_name']

Ok, gracias, ahora por lo menos sí se imprime el nombre temporal, pero se sigue sin copiar la imagen en el directorio "uploaded"...
  #11 (permalink)  
Antiguo 04/01/2009, 14:37
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problemas al intetar subir una imagen al servidor

lo de avatar por file, lo cambiaste tambien aqui?

move_uploaded_file($_FILES['avatar']['tmp_name'],$ruta);
  #12 (permalink)  
Antiguo 04/01/2009, 14:52
 
Fecha de Ingreso: septiembre-2008
Mensajes: 146
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problemas al intetar subir una imagen al servidor

Cita:
Iniciado por jaronu Ver Mensaje
lo de avatar por file, lo cambiaste tambien aqui?

move_uploaded_file($_FILES['avatar']['tmp_name'],$ruta);
cierto....no lo vi...SOLUCIONADO..merci!
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 06:53.