Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2006, 21:39
Computer XTress
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
¿Saben sobre un error en IE en los uploads via PHP?

Que tal a todos!

Quisiera saber si alguno esta al tanto sobre un problema que ocurre al subir archivos por medio de un script PHP utilizando Internet Explorer.

En mi caso, mi script funciona perfectamente con FIREFOX, pero si intento subir un archivo utilizando EXPLORER se queda "colgada" la pagina y jamas termina de cargar.

¿Tal vez es un error general?

Por las dudas, adjunto mi script, que depaso, quiza le sirva a alguno tambien.

Saludos !

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

    if (!
$_SESSION['user']) {
        
header("Location: /html_msgs/auth_error.php");
        exit();

    } else if (
$_SESSION['u_level'] == 0) {

        
header("Location: /html_msgs/user_ban.php");
        exit();
    }

    
/** ¿Estamos en el PASO 3? **/

    
if ($_SESSION['pm_paso'] != 3) {
        
header("Location: /html_msgs/pm/error1.php");
        exit();
    }

    
/*** Existe el resto de las variables ? ***/

    
if (!isset($_SESSION['pm_titulo']) || !isset($_SESSION['pm_texto']) || !isset($_SESSION['lic_cc_url']) ) {
        
header("Location: /html_msgs/pm/error1.php");
        exit();    
    }

// Fin control de datos

    
if (isset($_FILES['f_pm_upload']) ) {
        if(
is_uploaded_file($_FILES['f_pm_upload']['tmp_name'])) {
            
$ruta"./tmp_uploads/{$_FILES['f_pm_upload'] ['name']}";

            if (
$_FILES['f_pm_upload']['type'] == "audio/mpeg" || $_FILES['f_pm_upload']['type'] == "audio/mp3") {

                if (!
move_uploaded_file ($_FILES['f_pm_upload'] ['tmp_name'], $ruta) ) {

                    switch (
$_FILES['f_pm_upload'] ['error']) {
                        case 
1:
                                
$error "1";
                            
$msg "<b>*</b> El archivo es más grande de lo permitido";
                                break;
                        case 
2:
                                
$error "1";
                            
$msg "<b>*</b> El archivo es más grande de lo permitido";
                            break;
                        case 
3:
                                
$error "1";
                            
$msg "<b>*</b> Error en la transferencia. Por favor, vuelve a intentarlo.";
                            break;
                        case 
4:
                                
$error "1";
                            
$msg "<b>*</b> Error en la transferencia. Por favor, vuelve a intentarlo.";
                            break;
                     } 
// Switch

                
} else { // if (!move_uploaded...

                
}

            } else { 
// Si el archivo no corresponde al formato permitido...
                
$msg "<b>*</b> Archivo no válido!";
                
$error 1;
            }

        } else { 
// Si el archivo no esta subido en la carpeta temporal...
            
$msg "<b>*</b> No se especifico archivo!";
            
$error 1;
        }

    } 
// Si no existe el puntero hacia el array de archivos subidos...


    
if ($error == "1") {

        
$back "/pm/envio3.php?msg=".$msg;
        
header("Location: ".$back);

    } else {

        require_once(
$_SERVER['DOCUMENT_ROOT'].'/include/bd.php');
        include_once(
$_SERVER['DOCUMENT_ROOT'].'/include/fecha.php');

        
$fecha mysqldate();

    
// Registramos el ingreso de nuevo upload en carpeta temporal.

        
$sql "insert into pm_participacion (usuario, titulo, redaccion, archivo, fecha) values('".$_SESSION['user']."','".$_SESSION['pm_titulo']."','".$_SESSION['pm_texto']."','".$_FILES['f_pm_upload']['name']."','".mysqldate()."')";
        
$query mysql_query($sql) or die(mysql_error());
        
$_SESSION['pm_particip'] = "TRUE";



    
// Destruimos todas las variables de session utilizadas para el upload

        
$_SESSION['pm_titulo'] = ""; unset($_SESSION['pm_titulo']);
        
$_SESSION['pm_texto'] = ""; unset($_SESSION['pm_texto']);
        
$_SESSION['pm_paso'] = ""; unset($_SESSION['pm_paso']);


        
$back "/pm/envio_ok.php";
        
header("Location: ".$back);
    }

    
mysql_close($link);
?>