Acabo de probar a crear las carpetas en mi server remoto.
Ejemplo donde alojo las imagenes y el archivo up.html y subearchivo.php:
Direccion:
http://www.misitio.com/foro/images/post/
http://www.misitio.com/foro/images/post/up.html
http://www.misitio.com/foro/images/post/subearchivo.php
Todo esto es lo que he creado para probar en remoto, y funciona con los codigos que he puesto anteriormente, tal y como los he posteado, no tendrias que cambiar nada si efectivamente la ruta de las carpetas es como la mia.
Codigo pagina y script upload, no hace falta retocar nada.
up.html
Código HTML:
<html>
<head>
<link rel="shortcut icon" href="http://usonokia.com.ve/foro/favicon.ico">
<title>Subir Imagenes</title>
</head>
<body>
<body background="fondo.jpg">
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<table align="center" width="250"><div align="center">
<form action="./subearchivo.php" method="post" enctype="multipart/form-data">
<tr><td width="250"><div align="left">
<b>Enviar un nuevo archivo: </b>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
</div>
</td></tr>
<tr><td>
<input name="userfile" type="file">
</td></tr>
<tr><td>
<input name="enviar" type="submit" id="enviar" value="Enviar" />
<input name="action" type="hidden" value="upload" /> <!-- ------- Aqui faltaba esta linea, todo lo demas estaba bien -->
</td></tr>
</form>
</div></table>
</body>
</html>
subearchivo.php
Código PHP:
<?php
error_reporting(E_ALL & ~E_NOTICE);
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES['userfile']['size'];
$tipo = $_FILES['userfile']['type'];
$archivo = $_FILES['userfile']['name'];
if ($archivo != "") {
// guardamos el archivo a la carpeta files
$destino = "./../../../foro/images/post/".$archivo; // Aqui los "./../../" indican la profundidad de la carpeta, deberas de quitar o poner dependiendo de cuantas carpetas haya hasta llegar al raiz de la web.
if (copy($_FILES['userfile']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
header('Location: ./../../../foro/images/post/up.html'); // Aqui los "./../../" indican la profundidad de la carpeta, deberas de quitar o poner dependiendo de cuantas carpetas haya hasta llegar al raiz de la web.
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
?>
<?php echo $status; ?>
No se, o estas omitiendo alguna carpeta o no entiendo porque no funciona, ya que he probado en local y remoto y va perfecto.
Mi web la tengo alojada en 1&1 y son bastantes restrictivos con permisos y demas, pero con esto no hay problema.
Ya me cuentas, saludos