Sucede que puse un código para subir imágenes en el sitio web que estoy desarrollando. Lo probé en local y todo muy bien, no había problemas para subir imágenes. Pero el problema es que en el servidor no lo hace.
El código es este:
En este formulario, el usuario envía la imagen:
Código:
<h1>Comparte las fotos de tus vacaciones en Araguate</h1>
<h2>
<h3> Tu imagen debe de tener formato JPG, JPEG o GIF. <br />
El tamaño máximo permitido es de 500Kb, </h3><br />
<form action="subearchivo.php" method="post"
enctype="multipart/form-data">
<label for="file"><h2>Archivo:</h2></label>
<input type="file" name="file" id="file" />
<br /><br />
<h3><b>Escribe el siguiente texto en el campo tal y como aparece en la imagen</b></h3><br />
<h3>Si no entiendes las palabras que aparecen en la imagen, haz click en el boton con dos flechas para que aparezca otra opción</h3><br />
<?php
require_once('recaptchalib.php');
$publickey = "Clave Captcha "; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<input type="submit" name="submit" value="Subir" />
</form>
</h2>
<br />
Este código php es el que se encarga de subirlo
Código:
<?php
require_once('recaptchalib.php');
$privatekey = "Clave Captcha";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
die ("El código Captcha que escribiste es incorrecto. <a href=\"javascript: window.history. go( -1 )\">haz click aquí</a> para regresar ");
}
?>
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg"))
&& ($_FILES["file"]["size"] < 500000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Archivo Guardado: " . $_FILES["file"]["name"] . "<br /><br />";
echo "Muchas gracias por enviar tu imagen, la publicaremos pronto en nuestra galería. <br /><br /> Si deseas subir mas imágenes de tus vacaciones, <a href=\"javascript: window.history. go( -1 )\">haz click aquí</a><br />";
if (file_exists("http://www.araguatehotel.com/vacaciones/" . $_FILES["file"]["name"]))
{
echo "<br> <b>El archivo".$_FILES["file"]["name"] . " ya existe. Cambia el nombre de tu archivo y vuelve a intentar</b>.";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"vacaciones/" . $_FILES["file"]["name"]);
echo "Stored in: " . "http://www.araguatehotel.com/vacaciones/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "El archivo que trataste de subir es inválido <br><br>.";
if ($_FILES["file"]{"name"} == "") {die ("No subiste ningún archivo, <a href=\"javascript: window.history. go( -1 )\">haz click aquí</a> para regresar");
}
if (($_FILES["file"]["type"] != "image/gif")
&& ($_FILES["file"]["type"] != "image/jpeg")
&& ($_FILES["file"]["type"] != "image/jpg")) {echo "El formato del archivo es incorrecto, recuerda subir archivos solo con extensión gif, jpeg, o jpg";}
if ($_FILES["file"]["size"] > 500000) {echo "El archivo excede los 500Kb permitidos";}
}
?>
</h2>
Al formulario le puse un Captcha para evitar malos usos de este sistama. El Captcha funciona sin ningún problema, y las validaciones también funcionan bien, pero por alguna razón no se sube.