Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/01/2014, 11:40
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: no puedo subir imagen a una carpeta en mi localhost

Me parece que estás intentando guardar el archivo cuando NO envías datos, es decir, cuando no tienes una imagen para cargar. El bloque de código que guarda el archivo, debe ejecutarse cuando la condición se cumple:

Código PHP:
Ver original
  1. if(isset($_POST['enviar'])) {
  2.      if($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) {
  3.           echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
  4.      }else {
  5.           $usuario_nombre = $_SESSION['usuario_nombre'];
  6.           $usuario_clave = mysql_real_escape_string($_POST["usuario_clave"]);
  7.           $usuario_clave = md5($usuario_clave); // encriptamos la nueva contraseña con md5
  8.           $sql = mysql_query("UPDATE usuarios SET ruta='".$ruta."' WHERE usuario_nombre='".$usuario_nombre."'");
  9.           if($sql) {
  10.                echo "Contraseña cambiada correctamente.";
  11.                
  12.                //Aquí subes la imagen
  13.                $rutaEnServidor='imagenes';
  14.                $rutaTemporal=$_FILES['imagen']['tmp_name'];
  15.                $nombreImagen=$_FILES['imagen']['name'];
  16.                $rutaDestino=$rutaEnServidor.'/'.$nombreImagen;
  17.                move_uploaded_file($rutaTemporal,$rutaDestino);
  18.           }else {
  19.                echo "Error: No se pudo cambiar la contraseña. <a href='javascript:history.back();'>Reintentar</a>";
  20.           }
  21.      }
  22. }

Cita:
Iniciado por andinog Ver Mensaje
Creo que te falto el atributo enctype:

Código HTML:
Ver original
  1. <form method="post" enctype="multipart/form-data">
No es necesario si solamente se subirá un archivo al servidor.

Cita:
Iniciado por andinog Ver Mensaje
Tal vez podrías borrar

Código PHP:
Ver original
  1. action="<?=$_SERVER['PHP_SELF']?>"

ya que cuando dejas action en blanco, se refiere a la misma pagina.

Saludos
Es lo mismo, también da igual si no colocas el atributo action.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand