Pues yo tengo un problemilla en un panel de carga de fotos en cascada que sigue el esquema desarrollado en este hilo .... bueno ... muy parecido.
Desde el panel podemos añadir/modificar/borrar ....
funciona al 100% en firefox.
Pero cuando me voy a chrome, ie9 o a safari ..... los input file (html) no responden .... parecen no enviar nada (en realidad si) .... pero la función que se encarga de preparar y subir el archivo no responde.
ESTRUCTURA DEL SCRIPT:::::
Código PHP :
include ('header.php');
//formulario();
//url();
carga_fotos();
if ($_GET['url'] && !$_POST['la_url']){borrar_foto();}
if ($_POST['submit']="CambiarFoto" && $_POST['la_url']){update_foto();}
if ($_POST['Submit']=="Fotonueva"){
$tamano = $_FILES [ 'foto' ][ 'size' ];
$tipo = $_FILES['foto']['type'];
if ($tipo=='image/jpeg' or $tipo=='image/pjpeg'){$tipo="JPG";}
echo "<div><br />";
if ($tamano > 75000 || $tamano !=0){ //criterio inicial: a partir de un tamaño minimo
if( $tamano < 200001 ){
if ($tipo!=="JPG"){echo "<img src='".$SERVER."/images/error.jpg' style='float:left' alt='ok'/>
<p style='color:red'>El ARCHIVO NO es JPG >> CAMBIE EL FORMATO</p></div><br /><br /><br />"; }
else{ print ""; insertfoto();}
}else{echo"<img src='".$SERVER."/images/error.jpg' style='float:left' alt='nook'/><br /><br /><p>ERROR: FOTO mayor de 200KB >> Reduzca la imagen. Pase su foto a 640x480</p></div>"; }
}else{echo"<img src='".$SERVER."/images/error.jpg' style='float:left' alt='ok'/><p>NO HA ENVIADO NINGUNA FOTO.</p></div><br /><br /><br />"; }
}
include ('footer.php');
Como se ve: según el POST que envío, se hace una cosa u otra . .. nos interesa:
if ($_POST['Submit']=="Fotonueva") >>>>>>> insertfoto();
Y LA FUNCIÓN INSERFOTO() resumida
Código PHP :
function insertfoto(){
$SERVER = "http://".$_SERVER['SERVER_NAME']."/privado";
include ("db.php");
//TRAtamiento de la imagen
//$unique = $_GET['id']."-".time()."-"; //la foto se precede del refweb del anuncio
//$nombre_foto = str_replace ("[^ A-Za-z0-9_-]", "", $_FILES['foto']['name']);
$unique = $_GET['id']."-".time()."-"; //la foto se precede del refweb del anuncio
$nombre_foto = ereg_replace ("[^A-Za-z0-9.]", "", $_FILES['foto']['name']);
$nombre_foto = ereg_replace (" ", "", $nombre_foto);
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/fotos/'.$unique.$nombre_foto;
IF( $_FILES['foto']['name'] != null && $_FILES['foto']['size'] > 0){
/// A PARTIR DE AQUÍ SE TRATA LA IMAGEN A SUBIR ***************************************
@$img = imagecreatefromjpeg($_FILES['foto']['tmp_name']);
// miramos el tamaño de la imagen original...
$datos = getimagesize($_FILES['foto']['tmp_name']) or die("Problemas con datos de foto ");
// intentamos escalar la imagen original a la medida que nos interesa
$altura = 360; // la altura será de 360px
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);
// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);
// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
// voilà la salvamos con el nombre y en el lugar que nos interesa.
//imagejpeg($thumb,$uploaddir);
IF(imagejpeg($thumb,$uploaddir)){ // esta es la instruccion de subida
echo "<div style='float:right;margin-right:100px'>
<img src='/fotos/".$unique.$nombre_foto."' alt='foto".$unique."' style='height:180px'/>
</div>";
$fotoparticular = '/fotos/'.$unique.$nombre_foto;
$id_anuncio = $_GET['id'];
$titulo = "Foto ".$id_anuncio;
//echo $fotoparticular." -- ".$titulo." -- ".$id_anuncio;
$result=mysql_query("INSERT INTO fotos (refweb,url)
VALUES ('$id_anuncio','$fotoparticular')",$connection) or die(mysql_error());
$num_res = mysql_affected_rows();
if ($num_res > 0){
?>
<script language="JavaScript" type="text/javascript">
/*<![CDATA[*/
alert("LA FOTO HA SIDO CARGADA");
window.location.href='<?php echo $SERVER."/carga_fotos.php?id=".$_GET['id']; ?>';
/*]]>*/
</script>
<?php
}
}
} // IF(!empty($_FILES['foto']['name'])
}//FIN FUNCION
¿ALGUIEN SABRÍA DECIRME DÓNDE METO LA PATA?Os puedo dejar hacer pruebas desde el server de ensayos:
http://autocaex.no-ip.info