Foros del Web » Programando para Internet » PHP »

Subida de archivos - Internet Explorer

Estas en el tema de Subida de archivos - Internet Explorer en el foro de PHP en Foros del Web. Hola Estoy teniendo problemas a la hora de subir archivos al servidor desde Internet Explorer. Con cualquier otro navegador que utilice, el sistema funciona correctamente, ...
  #1 (permalink)  
Antiguo 03/12/2009, 02:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 25
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Subida de archivos - Internet Explorer

Hola

Estoy teniendo problemas a la hora de subir archivos al servidor desde Internet Explorer. Con cualquier otro navegador que utilice, el sistema funciona correctamente, sube la imagen, la registra en la base de datos y todo bien.

El caso es que he estado leyendo por ahi y he visto que M$, según ellos por seguridad, han desactivado varios temas en IE7 y sucesores para el campo input file, y supongo yo que será eso lo que no me deja subir archivos. Esta es la info que he leido por ahi.

ht*p://weblogs.asp.net/ashicmahtab/archive/2009/05/20/fileupload-control-doesn-t-give-full-path-help.aspx
ht*p://technet.microsoft.com/en-us/library/dd919181(WS.10).aspx
ht*p://blogs.msdn.com/webtopics/archive/2009/07/27/uploading-a-file-using-fileupload-control-fails-in-ie8.aspx

He puesto las opciones de seguridad al mínimo, agregado la página a mis sitios de confianza (para eliminarle los filtros de seguridad del navegador), vamos en definitiva de todo, pero no hay manera.

El problema es que el navegador NO carga el archivo en el envio POST, ya que en el script PHP que utilizo no aparece el fichero.

¿alguien sabe porque, alguna solución o idea? He visto que con ASP.NET existen mecanismos para cargar los archivos para que iexplorer funcione, pero me niego a usar ASP.NET.

un saludo

gracias
  #2 (permalink)  
Antiguo 03/12/2009, 02:11
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
Respuesta: Subida de archivos - Internet Explorer

mmm, y el codigo???
  #3 (permalink)  
Antiguo 03/12/2009, 02:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 25
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Subida de archivos - Internet Explorer

bueno, no creo que haga falta código, pero vamos que ahi va:

form:

Código PHP:
<form action="imagenesup.php" method="post" enctype="multipart/form-data" id="form">
   <
input type="file" name="img" id="img" />
   <
input name="id" id="id" type="hidden" value="id_usuario" />
   <
input type="text" name="txtfoto" id="txtfoto" />

   <
input id="button2" type="submit" value="Enviar" />
</
form
script:

Código PHP:
<? session_start(); ?>

<?

    set_include_path
($_SERVER['DOCUMENT_ROOT']);
    
    
ini_set("upload_tmp_dir","/var/www/vhosts/xxxx/httpdocs/tmp/");

        
$id $_POST["id"];
        
$txtfoto $_POST["txtfoto"];

        
$archivo $_FILES['img']['tmp_name'];
        
$ruta $_SERVER['DOCUMENT_ROOT'] . '/img/usr/';

        if (
is_uploaded_file($archivo))
            if(
$_FILES['img']['type']=="image/jpeg")
                
move_uploaded_file($archivo$ruta."tmp/".$id.'.jpg');
                
$subido true;
        
        if(
$subido) {

            echo 
"<small class='negri'>Archivo subido.</small><br>";
    
                
define ("host","localhost");
                
define ("user","xxx");
                
define ("pass","xxx");
                
define ("bbdd","xxx");
                
                try {
                    
                    
$conexion mysql_connect(hostuserpass);
                    
mysql_select_db(bbdd$conexion);
                    
                    
$consulta "INSERT INTO USU_Imagenes ( idusuario, piefoto ) VALUES " .
                                
" ( ".$id.", '".$txtfoto."' ) ";

                    
mysql_query($consulta);
                    
                    
$realid mysql_insert_id();
                    
                    
mysql_close($conexion);
                    
                    
rename($ruta."tmp/".$id.".jpg"$ruta.$realid.".jpg");
                    
                }
                catch (
Exception $e)
                {
                    echo 
"Error Cargando Imagenes: " $e->getMessage();
                }
            
        }
        else {

            echo 
"<small class='negri'>Error.</small><br>";

        }

        echo 
'Redireccionando...';
        echo 
'<meta http-equiv="Refresh" content="0; url=imagenes.php">';

?>
  #4 (permalink)  
Antiguo 03/12/2009, 02:56
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Subida de archivos - Internet Explorer

Bueno el problema es tu if.... apesar que si deberia de subirlo, pero quizas no te das cuenta ^^.

el error esta en que no habres las {} en el if, y solo leo una sentencia y no la segunda.... por eso no entra a tu if($subido)

en esta parte mira.....

Código php:
Ver original
  1. if (is_uploaded_file($archivo))
  2.             if($_FILES['img']['type']=="image/jpeg")
  3.                 move_uploaded_file($archivo, $ruta."tmp/".$id.'.jpg');
  4.                 $subido = true;

cambialo por.....
Código php:
Ver original
  1. if (is_uploaded_file($archivo))
  2.             if($_FILES['img']['type']=="image/jpeg"){
  3.                 move_uploaded_file($archivo, $ruta."tmp/".$id.'.jpg');
  4.                 $subido = true;
  5.             }

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 03/12/2009, 12:49
 
Fecha de Ingreso: diciembre-2009
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Subida de archivos - Internet Explorer

A mi me pasa exactamente lo mismo. El input file me funciona a la perfección en Opera y en Firefox pero NO EN IE!!

¿Alguien ha solucionado este problemón?
  #6 (permalink)  
Antiguo 14/12/2009, 05:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 25
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Subida de archivos - Internet Explorer

Hola

el tema del if, es un problema del copy-paste xD; en mi código el if esta bien con sus llaves.


a lo mejor no me he explicado; el problema es del navegador, como le pasa al compañero anterior, con todos los navegadores funciona, es decir, la lógica del script y todo lo que hace esta correcto, pero en iexplorer, que han bloquedo (por seguridad....) ciertas cosas del input file de html, no va.

he estado leyendo sobre poner la web como sitio de confianza, quitar la seguridad del navegador, etc, etc, pero nada funciona.

En el sitio puedo subir archivos con Chrome, Firefox, Opera, Safari....pero Iexplorer (amen..) no rula.

¿alguna idea?

un saludo
  #7 (permalink)  
Antiguo 14/12/2009, 05:27
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Subida de archivos - Internet Explorer

No creo que sea esto que te voy a decir, pero conociendo a IE puede ser cualquier pelotudez.

<form action="imagenesup.php" method="post" enctype="multipart/form-data" id="form">

pone la etiqueta enctype al principio.

<form enctype="multipart/form-data" action="imagenesup.php" method="post" id="form">
  #8 (permalink)  
Antiguo 14/12/2009, 11:39
 
Fecha de Ingreso: marzo-2008
Mensajes: 25
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Subida de archivos - Internet Explorer

bueno, "solucionado"

no entiendo el porque, pero el caso es que fallaba a la hora de comprobar el tipo de archivo.

Código PHP:
        $id $_POST["id"];
        
$txtfoto $_POST["txtfoto"];

        
$archivo $_FILES['img']['tmp_name'];
        
$ruta $_SERVER['DOCUMENT_ROOT'] . '/img/usr/';

        
$imginfo getimagesize($_FILES['img']['tmp_name']);

        if (
is_uploaded_file($archivo))
            
//if($_FILES['img']['type']=="image/jpeg") {
                
if (($imginfo[0] <= 700) && ($imginfo[1] <= 438)) {
                    
move_uploaded_file($archivo$ruta."tmp/".$id.'.jpg');
                    
$subido true;
                }
        
//} 
quitando la comprobacion del tipo, y añadiendo una de tamaño (con la que de paso, comprobamos el tipo) se soluciona.

cosas de M$

un saludo
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:33.