Foros del Web » Programando para Internet » PHP »

Problemas para cargar achivos en php

Estas en el tema de Problemas para cargar achivos en php en el foro de PHP en Foros del Web. Soy principiante en esto de php e intentaba hacer una carga de archivo a servidor local como prueba, pero me da error: Warning: move_uploaded_file(/htdocs/pruebas/prueba/flor-de-loto.jpg): failed ...
  #1 (permalink)  
Antiguo 04/11/2013, 03:58
 
Fecha de Ingreso: mayo-2013
Mensajes: 75
Antigüedad: 10 años, 11 meses
Puntos: 0
Problemas para cargar achivos en php

Soy principiante en esto de php e intentaba hacer una carga de archivo a servidor local como prueba, pero me da error:

Warning: move_uploaded_file(/htdocs/pruebas/prueba/flor-de-loto.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\pruebas\prueba\processimage.php on line 16

Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php3DCC.tmp' to '/htdocs/pruebas/prueba/flor.jpg' in C:\xampp\htdocs\pruebas\prueba\processimage.php on line 16


Mi código es este..

Código:
<!doctype html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<link rel="stylesheet" type="text/css" href="css/principal.css">
</head>
<body>
	<div id="wrapper">
		<header>
			<img src="img/horizonte.jpg"/>
		</header>
		<section>
			<form method="POST" action="processimage.php" enctype="multipart/form-data" >
				<input type="file" name="newimage"/>
				<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
				<input type="submit" name="submit" value="Subir archivo"/>
		</section>
	</div>

</body>
</html>
<?php

$submit=$_POST["submit"];

$name_newimage=$_FILES['newimage']['name'];
$type_newimage=$_FILES['newimage']['type'];
$size_newimage=$_FILES['newimage']['size'];

if(isset($submit)){

if(!($name_newimage=="")){

$uploaddir="/htdocs/pruebas/prueba/";
$uploadfile = $uploaddir . basename($_FILES['newimage']['name']);

if (move_uploaded_file($_FILES['newimage']['tmp_name'], $uploadfile)) {

echo "El archivo es válido y fue cargado exitosamente.\n";
} else {
echo "¡Posible ataque de carga de archivos!\n";
}

}else{
echo"No se ha enviado correctamente el formulario.<br/>Intenlelo de nuevo.";
echo'<meta http-equiv="Refresh" content="2;url=index.php">';
}}

?>
  #2 (permalink)  
Antiguo 04/11/2013, 08:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas para cargar achivos en php

Toda ruta que utilices debe ser absoluta o relativa, tu estás usando "/htdocs/pruebas/prueba/" y eso se considera una ruta absoluta.

¿Dicha capeta existe?

Tomando en cuenta que al usar la barra / inicial le estás indicando la raíz del disco duro, ¿esa ruta existe tal cual la estás describiendo?

Eso ni siquiera es un error de PHP, es decir, deberías conocer el funcionamiento básico de una computadora para poder razonar al respecto.

Código PHP:
Ver original
  1. // MAL (a menos que la ruta realmente exista, pero usas Windows y definitivamente esta ruta es imposible aquí)
  2. $path = '/htdocs/pruebas/prueba/';
  3.  
  4. // BIEN ¿tal ves te referías a la raíz del sitio web?
  5. $path = $_SERVER['DOCUMENT_ROOT'] . 'htdocs/pruebas/prueba/';

Si no entiendes lo que te estoy diciendo te sugiero estudiar más acerca del sistema de archivos de tu sistema operativo.

Y claro, no olvides consultar el manual de PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/11/2013, 09:25
 
Fecha de Ingreso: mayo-2013
Mensajes: 75
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Problemas para cargar achivos en php

Gracias por tu explicación.
He puesto la ruta relativa al sitio y ha funcionado.
Quería preguntarte una cosa, realmente es mejor aprender lo básico de php y despues aprender a trabajar con framework como codeigniter o con sólo php tambien es factible.

Etiquetas: html
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 20:53.