Saludos, llevo dias programando mucho y con los ojos pelados con esto, tengo un cliente que me pidio lo siguiente. Un upload para fotos que redimensione, el codigo funciona bien en localhost pero en internet no funciona, el error que da es; THE FILENAME CANNOT BE EMPTY, me he dado cuenta que no esta leyendo la ruta de las imagenes externas, si las fotos estan en la misma carpeta que el script las carga, de lo contrario no. el codigo es el siguiente.
<?php
include("cn.php");
include("common_adm.php");
checklogin();
//phpinfo();
if ($_POST["Subir"])
{
if ($_POST["actividad"] != 7)
{
//datos del arhivo
//compruebo si las características del archivo son las que deseo
$total = $_POST['total'];
$actividad = $_POST["actividad"];
$categoria = $_POST["categoria"];
$i = 0;
for($i = 1; $i <= $total; $i++)
{
if($_FILES["imagen$i"])
{
// controlo que el el formulario haya sido cargado y ejecuto mi script
$img = $_FILES["imagen$i"]["name"]; // almaceno el nombre del archivo subido
$img2 = $img; //nombre de la nueva imagen achicada
$tipo = $_FILES["imagen$i"]["type"]; // almaceno el tipo de archivo
$dir = './imagenes_gde/'; // selecciono la carpta donde almaceno las imagenes
$anchomax = 500;
//aca controlo que el archivo subido sea JPG
if ($tipo == "image/jpeg")
{
// es JPG entonces abtengo el tamaño en pixel de la imagen subida
if ($i == 1)
{
$n = "1";
$tamanos = getimagesize($imagen1);
if ($tamanos[0] > $tamanos[1])
{
$anchomax = 500;
$ancho = $tamanos[0];
$alto = $tamanos[1];
}
else
{
$anchomax = 375;
$ancho = $tamanos[0];
$alto = $tamanos[1];
}
}
// controlo que no mida de ancho mas que el limite
if ($ancho > $anchomax)
{
$nuevoalto = round($anchomax / $ancho * $alto); //calculo el nuevo alto
if ($i == 1)
{
$imagenoriginal = imagecreatefromjpeg($imagen1); //tomo la imagen original
}
$imagennueva = imagecreatetruecolor($anchomax,$nuevoalto); // creo el lienzo de la imagen nueva
$quality = 100;
$fecha = $_POST[fecha];
if ($fecha == "")
{
$fecha = date("Y-m-d");
}
else
{
$fecha = $_POST[fecha];
}
//id//nombre_archivo//competencia//categoria//fecha
mysql_query("INSERT INTO productos VALUES ('NULL','comp_','$fecha','$img','---','$_POST[actividad]','$categoria','0','0','0','0','0','0')");
$id = comp.'_'.mysql_insert_id().".jpg";
imagecopyresampled($imagennueva, $imagenoriginal, 0, 0, 0, 0, $anchomax, $nuevoalto, $ancho, $alto);// cambio el manaño
imagejpeg($imagennueva, $dir . $id, $quality); // guardo el archivo nuevo
$archivo = $dir.$img2;
}
else
{
//esto es si la imagen no excedia el ancho
$archivo = $dir.$img;
//guardo el archivo original
//move_uploaded_file($HTTP_POST_FILES["imagen$i"]["tmp_name"], $dir.$id);
}
$muestra = "<img src=\"".$archivo."\">";
}
else
{
$muestra = "el archivo no es JPG";
}
//CREACION DE FOTO MINIATURA
// controlo que el el formulario haya sido cargado y ejecuto mi script
$img = $_FILES["imagen$i"]["name"]; // almaceno el nombre del archivo subido
$img2 = $img; //nombre de la nueva imagen achicada
$tipo = $_FILES["imagen$i"]["type"]; // almaceno el tipo de archivo
$dir = './miniaturas/'; // selecciono la carpta donde almaceno las imagenes
//aca controlo que el archivo subido sea JPG
if ($tipo == "image/jpeg")
{
// es JPG entonces abtengo el tamaño en pixel de la imagen subida
if ($i == 1)
{
$tamanos = getimagesize($imagen1);
if ($tamanos[0] > $tamanos[1])
{
$anchomax = 140;
$ancho = $tamanos[0];
$alto = $tamanos[1];
}
else
{
$anchomax = 105;
$ancho = $tamanos[0];
$alto = $tamanos[1];
}
}
// controlo que no mida de ancho mas que el limite
if ($ancho > $anchomax)
{
$nuevoalto = round($anchomax / $ancho * $alto); //calculo el nuevo alto
if ($i == 1)
{
$imagenoriginal = imagecreatefromjpeg($imagen1); //tomo la imagen original
}
$imagennueva = imagecreatetruecolor($anchomax,$nuevoalto); // creo el lienzo de la imagen nueva
$quality = 100;
imagecopyresampled($imagennueva, $imagenoriginal, 0, 0, 0, 0, $anchomax, $nuevoalto, $ancho, $alto);// cambio el manaño
imagejpeg($imagennueva, $dir . $id, $quality); // guardo el archivo nuevo
$archivo = $dir.$img2;
$msg = "*** Las Imágenes Se Han Cargado Correctamente!"."<br>";
}
else
{
//esto es si la imagen no excedia el ancho
$archivo = $dir.$img;
//guardo el archivo original
//move_uploaded_file($HTTP_POST_FILES["imagen$i"]["tmp_name"], $dir.$id);
$muestra = "<img src=\"".$archivo."\">";
}}
else
{
$muestra = "el archivo no es JPG";
}
}
}
}
else
{
$msg = "Debe Seleccionar una Actividad!";
}
}
$res = mysql_query("SELECT * FROM competencias ORDER BY id");
?>
ESTOY TARDE CON ESTO, LES AGRADESCO DE ANTEMANO.