PHP - Tengo un código para subir fotos y videos, no siempre funciona

 
Vista:
sin imagen de perfil

Tengo un código para subir fotos y videos, no siempre funciona

Publicado por Dio (15 intervenciones) el 28/09/2015 16:41:00
Tengo esto. Resulta que las fotos me las sube sin problemas, pero los videos solo algunos... Me permite subir videos de menos de 10mb (10mb no). Lo raro es que con los videos más grandes en vez entrar al else que hice por el tamaño se va al else que dice header('location: explore.php?error-archivo');
También probé configurando el php.ini y le puse upload_max_filesize=300M pero sigue rompiendo... Si alguien sabe le agradecería!

Les dejo el código del formulario y el que lo recibe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$tituloBarra = 'SUBIR CONTENIDO';
require 'header.php';
if (isset($_GET['pagina']) && isset($_GET['nombre'])) {
    $pagina = $_GET['pagina'];
    $nombrePagina = $_GET['nombre'];
}else{
    header('location: explore.php');
}
 ?>
    <div class="sidebar-overlay js-overlay"></div>
    <div class="content-manage">
        <div class="content-manage__heading">
            <p class="subtitle"><?php echo $pagina; ?></p>
            <p class="title"><?php echo $nombrePagina; ?></p>
        </div>
        <div class="content-manage__container">
            <!-- Usar .ti-video-clapper para secciones de video -->
            <i class="ti-image"></i>
            <p>Esta sección del libro permite subir <strong>una fotografía o imagen.</strong></p>
        </div>
        <div class="content-manage__actions">
        <form method="POST" enctype="multipart/form-data" action="content-confirm.php">
            <input type="FILE" class="" name="archivo">
            <input type="hidden" value="<?php echo $pagina ; ?>" id="pagina" name="pagina">
            <br><br>
            <button class="btn btn--lg btn--main js-upload-mock">Subir</button>
            <div class="progress-bar js-progress-bar">
                <span></span>
            </div>
        </form>
        </div>
    </div>
 
<?php require 'pie.html'; ?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
$tituloBarra = 'SUBIR CONTENIDO';
require 'header.php';
 
if ( isset($_POST['pagina']) )
{
    $id_pagina = $_POST['pagina'];
}else{
    echo 'Hubo un error, revise entrar en la pagina correcta';
    header('refresh: 2; url=explore.php?no-hay-pagina ');
}
 
if (isset($_POST['descripcion']) && $_POST['descripcion'] != '') {
    $descripcion = utf8_encode( $_POST['descripcion'] );
}else{
    $descripcion = 'Sin descripcion';
}
 
if (isset($_FILES['archivo']['tmp_name']))
{
    require 'class.sessions.php';
    $archivo = $_FILES['archivo']['name'];
    $archivo_tmp = $_FILES['archivo']['tmp_name'];
 
    if ($_FILES['archivo']['error'] > 0) {
        echo ('Error con el archivo o archivo nulo');
    }else{
        $permitidos = array('image/jpg' , 'image/jpeg' , 'image/gif' , 'image/png', 'video/avi', 'video/mpeg', 'video/mpg', 'video/quicktime', 'video/mp4', 'mp4' => array('video/mp4', 'application/octet-stream') );
        $limite_kb = 100000000;
        if (in_array($_FILES['archivo']['type'], $permitidos) && $_FILES['archivo']['size'] <= $limite_kb * 1024)
        {
            $vid = false;
            $arrVideo = array('video/avi', 'video/mpeg', 'video/mpg', 'video/quicktime', 'video/mp4', 'mp4' => array('video/mp4', 'application/octet-stream') );
            if (in_array($_FILES['archivo']['type'], $arrVideo) )
            {
                $vid = true;
            }
            $carpeta = 'imagenes/';
            $ruta = $carpeta.$archivo;
            if (!file_exists($ruta))
            {
                $miArchivo = Sessiones::subirArchivo($id_usuario, $id_pagina, $archivo, $descripcion);
                $resultado = move_uploaded_file($archivo_tmp, $miArchivo['ruta'].$miArchivo['archivo']);
                $idMedia = explode(".", $miArchivo['archivo']);
                $idMedia = $idMedia[0];
                if ($resultado)
                {
                    echo 'El archivo fue cargado';
                    //header('refresh: 1; url=explore.php');
                    ?>
                    <script type="text/javascript">
                        function borrar(Id)
                        {
                            debugger
                            $.ajax({
                                type : 'POST',
                                url  : 'controlador.php',
                                dataType : 'html',
                                data : {
                                    action  : 'borrarMedia',
                                    idMedia : Id
                                },
                                success: function(Data)
                                {
                                    window.location.replace("explore.php");
                                }
                            });
                        }
                    </script>
                    <div class="sidebar-overlay js-overlay"></div>
                    <div class="content-manage">
                        <div class="content-manage__container">
                            <!-- Usar .ti-video-clapper para secciones de video -->
                            <?php
                                if ($vid)
                                {
                                    ?>
                                    <video class="content-manage__video" src="<?php echo $miArchivo['ruta'].$miArchivo['archivo']; ?>" poster="http://img3.openfilm.com/static/data/img/vth/26400/26468/s1_65743.jpg" autoplay controls></video>
                                    <p>Estás a punto de subir este video: <strong><?php echo $_FILES['archivo']['name'] ?></strong></p></p>
                                    <?php
                                }else{
                                    ?>
                                    <div class="content-manage__image" style="background-image: url(<?php echo $miArchivo['ruta'].$miArchivo['archivo'] ?>)"></div>
                                    <p>Estás a punto de subir esta imagen: <strong><?php echo $_FILES['archivo']['name'] ?></strong></p>
                                    <?php
                                }
                             ?>
                        </div>
                        <div class="content-manage__actions">
                            <a href="explore.php" class="btn btn--lg btn--main js-upload-mock">Confirmar</a>
                            <button onclick="borrar(<?php echo $idMedia; ?>)" class="btn btn--sm btn--alt">Cancelar</button>
                        </div>
                    </div>
                    <?php
                } else {
                    echo ('Ocurrió un error al mover el archivo');
                }
            }else {
                echo ('Este archivo ya existe. Pruebe cambiarle el nombre agregandole algún número');
            }
        } else {
            echo ('Archivo no permitido, es tipo de archivo prohibido o excede el tamano de '.$limite_kb.' Kilobytes. <br> Los archivos permitidos son: <br>');
            foreach ($permitidos as $key => $value) {
                if ($key != 'mp4') {
                    echo $value.'<br>';
                } else {
                    echo 'video/mp4 <br>';
                }
            }
        }
    }
}else{
    header('location: explore.php?error-archivo');
}
 
 ?>
<?php require 'pie.html'; ?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Miguel Hernandez Liebano

Tengo un código para subir fotos y videos, no siempre funciona

Publicado por Miguel Hernandez Liebano (15 intervenciones) el 28/09/2015 16:50:22
Prueba cambiando el tiempo de ejecución del script en el ini, en php tiene un tiempo maximo de ejecución de lo script por lo que al tratar de subir un archivo muy grande el tiempo de ejecución aumenta prueba con eso a ver.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar