PHP - Cambiar los tipos de archivos permitidos

   
Vista:
Imágen de perfil de Antonio

Cambiar los tipos de archivos permitidos

Publicado por Antonio (37 intervenciones) el 29/05/2017 18:41:52
Hola, buenas. Tengo un código para subir archivos a una plataforma con extensión "jpg, rar, txt y zip" y quisiera saber cómo hago para cambiar esas extensiones permitidas por las siguientes: "mp4, mpeg, mwv", el código es el siguiente:
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
<!-- ### FORM POST ### -->
          <div class="box box-info">
            <!-- form start -->
            <form id="poster" class="form-horizontal">
              <div class="box-body">
                 <textarea id="thetextpost" name="posttext" class="form-control" rows="3"></textarea>
              </div>
              <!-- /.box-body -->
            </form>
 
              <div class="box-footer">
                <button class="btn btn-danger btn-sm pull-left" data-toggle="modal" data-target="#ModalDocumment"> <i class="fa fa-file-archive-o" aria-hidden="true"></i> Archivo</button>
                <button class="posterbtn btn btn-info btn-sm pull-right"><i class="fa fa-pencil"></i> Publicar</button>
              </div>
              <!-- /.box-footer -->
          </div>          
          <!-- ### FORM POST ### -->
 
 
 
          <!-- ### COMMENT ### -->
          <div id="timeliner">
 
          <?php takemylast6post(); ?>          
 
          </div>
          <!-- ### COMMENT ### -->
          <div id="loaderlinetime" class="col-sm-12 text-center">
            <div class="loader-inner ball-pulse-sync"><div></div><div></div><div></div></div>
          </div>
 
 
 
       </div>
       <div id="sidebar" class="col-sm-3">
           <?php include 'includes/adsense.html'; ?>
       </div>
     </div>
     <!-- container -->
 
 
     <!-- Modal -->
     <div class="modal fade" id="ModalDocumment" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
       <div class="modal-dialog" role="document">
         <div class="modal-content">
           <div class="modal-header">
             <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
             <h4 class="modal-title" id="myModalLabel"><i class="fa fa-upload" aria-hidden="true"></i> Subir Archivo</h4>
           </div>
           <div class="modal-body">
            
              
              <div id="thefilattch" class="col-sm-12">
                <form id="attachmentfrm">
                  <label>Descripción:</label>
                  <textarea class="form-control" name="descripcion" rows="3"></textarea>
                  <label>Archivo:</label>
                  <input type="file" name="archivo" class="form-control">
                </form>
 
                <p></p>
                <p>Solo se aceptan archivos con la extension: <?php validextlist(); ?></p>
                
              </div>
              <!-- progress -->
              <div id="loadeingarchive" class="progress active">
                <div class="progress-bar progress-bar-primary progress-bar-striped" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
                </div>
              </div>
              <!-- progress -->
              <button type="button" class="uploadarchive btn btn-primary pull-right">Subir Archivo</button>
 
           </div>
         </div>
       </div>
     </div>
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 Antonio

Cambiar los tipos de archivos permitidos

Publicado por Antonio (37 intervenciones) el 29/05/2017 19:04:40
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
// Sacamos las extensiones permitidas para los archivos que se suben
function gettheextattachment(){
 
    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();
 
    $SQL = 'SELECT archiveextensions FROM '.SSPREFIX.'socialconfig WHERE id = 1';
    $stn = $conexion -> prepare($SQL);
    $stn -> execute();
    $rstl = $stn -> fetchAll();
    if (empty($rstl)){
    }else{
      foreach ($rstl as $key){
        $fileext = $key['archiveextensions'];
        return $fileext;
      }
    }
}
 
 
function validextlist(){
 
    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();
 
    $SQL = 'SELECT archiveextensions FROM '.SSPREFIX.'socialconfig WHERE id = 1';
    $stn = $conexion -> prepare($SQL);
    $stn -> execute();
    $rstl = $stn -> fetchAll();
    if (empty($rstl)){
    }else{
      foreach ($rstl as $key){
         echo '<b>'.str_replace('|', ' / ', $key['archiveextensions']).'</b>';
      }
    }
 
}
 
 
function formatSizeUnits($bytes){
        if ($bytes >= 1073741824)
        {
            $bytes = number_format($bytes / 1073741824, 2) . ' GB';
        }
        elseif ($bytes >= 1048576)
        {
            $bytes = number_format($bytes / 1048576, 2) . ' MB';
        }
        elseif ($bytes >= 1024)
        {
            $bytes = number_format($bytes / 1024, 2) . ' kB';
        }
        elseif ($bytes > 1)
        {
            $bytes = $bytes . ' bytes';
        }
        elseif ($bytes == 1)
        {
            $bytes = $bytes . ' byte';
        }
        else
        {
            $bytes = '0 bytes';
        }
 
        return $bytes;
}
 
 
// Para subir un archivo
function attachmentfiles($file,$description){
 
    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();
 
    // Primero el Año
    $theyear = date('Y');
 
    // Ahora el Mes 
    $themonth = date ('m');
 
    // Ahora usamos la sesion del usuario para su respectiva carpeta
    $theuser = $_SESSION['ssid'];
 
    // Creamos un alfanumerico aleatorio.
    $characters = 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $string = '';
    for ($i = 0; $i < 60; $i++) {
     $string .= $characters[rand(0, strlen($characters) - 1)];
    }
 
    // Tomamos la fecha y hora con segundos
    $fechaseconds = date('Y-m-d h:i:s');
    $fechanormal =  date('Y-m-d');
 
    // Nuevo nombre del Archivo
    $thenewname = sha1($fechaseconds.$theuser.$string);
 
    // Obtenemos la extension
    $fileext = new SplFileInfo($file);
    $getextension = $fileext->getExtension();
 
    // convertimos extension a minusculas
    $extension = strtolower($getextension);
 
    //comprobamos si el archivo ha subido y lo movemos a una su respectiva ruta
    if ($file && move_uploaded_file($_FILES['archivo']['tmp_name'],"../attachments/".$theuser."/".$theyear."/".$themonth."/".$thenewname.".".$extension)){
    }  
 
    // Creamos ruta del temporal
    $temporal = "../attachments/".$theuser."/".$theyear."/".$themonth."/".$thenewname.".".$extension;
 
 
    // Creamos el permalink de la publicacion
    $permalink = sha1($string.$fechaseconds);
 
 
    // Limitamos las publicaciones a tan solo 1000 caracteres
    $postparse = substr($description, 0,1000);
 
    // Filtramos para evitar XSS Injection
    $filtro = new InputFilter();
    $finalpost = $filtro->process($postparse);
 
    // Tamaño del archivo
    $filesize = $_FILES['archivo']['size'];
 
    // Nombre del Archivo
    $filename = $_FILES['archivo']['name'];
 
    // Revisamos si el resultado es vacio para no tener que postearlo
    if (empty($finalpost)){
       exit();
    }
 
    if (is_null($finalpost)){
       exit();
    }
 
    // Hacemos el registro del Archivo
    $FileAttch = 'INSERT INTO '.SSPREFIX.'attachment (ruta, nombre, usuario, fecha, ext, peso, permalink) VALUES (:ruta, :nombre, :usuario, :fecha, :ext, :peso, :permalink)';
    $stnfile = $conexion -> prepare($FileAttch);
    $stnfile -> bindParam(':ruta', $temporal ,PDO::PARAM_STR);
    $stnfile -> bindParam(':usuario', $_SESSION['ssid'] ,PDO::PARAM_STR);
    $stnfile -> bindParam(':nombre', $filename ,PDO::PARAM_INT);
    $stnfile -> bindParam(':fecha', $fechaseconds ,PDO::PARAM_STR);
    $stnfile -> bindParam(':ext', $extension ,PDO::PARAM_STR);
    $stnfile -> bindParam(':peso', $filesize ,PDO::PARAM_STR);
    $stnfile -> bindParam(':permalink', $thenewname ,PDO::PARAM_STR);
    $stnfile -> execute();
    $lastidfile = $conexion -> lastInsertId();
 
    // Post con archivo
    $thepostpostarchive = $lastidfile.'|'.$finalpost;
 
    // Como es un post de archivo es 4
    $tipo = 4;
 
    $SQL = 'INSERT INTO '.SSPREFIX.'posts (post, usuario, permalink, fecha, tipo) VALUES (:post, :usuario, :permalink, :fecha, :tipo)';
    $stn = $conexion -> prepare($SQL);
    $stn -> bindParam(':post', $thepostpostarchive ,PDO::PARAM_STR);
    $stn -> bindParam(':usuario', $_SESSION['ssid'] ,PDO::PARAM_INT);
    $stn -> bindParam(':permalink', $permalink ,PDO::PARAM_STR);
    $stn -> bindParam(':fecha', $fechaseconds ,PDO::PARAM_STR);
    $stn -> bindParam(':tipo', $tipo ,PDO::PARAM_INT);
    $stn -> execute();
    $lastid = $conexion -> lastInsertId();
 
    // imagen de perfil 
    $profileimg = userprofile($_SESSION['ssid']);
    
    // Fecha
    $fechastronger = fechastring($fechanormal,$permalink);
 
    echo'
        <div id="post-public'.$lastid.'" class="box box-widget">
            <div class="box-header with-border">
              <div class="user-block">
                <img class="img-circle" src="'.$profileimg.'" alt="'.gettheusernamepost().'">
                <span class="username"><a href="profile.php?leanserwebmaster">'.gettheusernamepost().'</a></span>
                '.$fechastronger.'
              </div>
              <!-- /.user-block -->
              <div class="box-tools">
                <button data-post="'.$lastid.'" class="eliminarthispost btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
              </div>
              <!-- /.box-tools -->
            </div>
            <!-- /.box-header -->
            <div class="box-body">
              <!-- post text -->';
 
                $postexplode = explode('|', $thepostpostarchive);
                getattachblock($postexplode[0],$postexplode[1]);
 
         echo'<!-- Social sharing buttons -->
              <button id="liker'.$lastid.'" type="button" data-target="'.$lastid.'" onclick="thelikeloadtimeclick('.$lastid.');" class="btn btn-default btn-xs"><i class="fa fa-thumbs-o-up"></i> Me gusta</button>
              <span id="likecomment'.$lastid.'" class="pull-right text-muted">
                
              </span>
            </div>
 
            <!-- /.box-footer -->
            <div class="box-footer">
              <form class="commentfrm" data-form="'.$lastid.'" id="commentfrm'.$lastid.'">
                <img  id="mypiccomment" class="img-responsive img-circle img-sm" src="'.$profileimg.'">
                <!-- .img-push is used to add margin to elements next to floating images -->
                <div class="img-push">
                  <input type="text" class="form-control input-sm" name="comentario" placeholder="Comentar...">
                </div>
              </form>
            </div>
            <!-- /.box-footer -->
 
            <!-- /.box-body -->
            <div id="box-commets-body-'.$lastid.'" class="box-footer box-comments">
 
            </div>
 
          </div>
    ';


    $conexion = '';



}



function downloadarchive($permalink){

     // conexion de base de datos
     $conexion = Conexion::singleton_conexion();

     $SQL = 'SELECT * FROM '.SSPREFIX.'attachment WHERE permalink = :permalink LIMIT 1';
     $stn = $conexion -> prepare($SQL);
     $stn -> bindParam(':permalink', $permalink ,PDO::PARAM_STR);
     $stn -> execute();
     $rstl = $stn -> fetchAll();
     if (empty($rstl)){
       header('Location: 404.php');
     }else{
       foreach ($rstl as $key){
          $ruta = str_replace('../', '', $key['ruta']);
          $nombre = $key['nombre'];
       }
     }

     header("Content-type: application/octet-stream"); 
     header("Content-Type: application/force-download"); 
     header("Content-Disposition: attachment; filename=\"$nombre\"\n"); readfile($ruta); 


}





// Tomamos los ultimos 6 post
function takepostperpermalink($permalink){

    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();


    $SQL = 'SELECT '.SSPREFIX.'usuarios.id AS userid, '.SSPREFIX.'posts.tipo AS posttipo, '.SSPREFIX.'posts.id AS postingid, '.SSPREFIX.'posts.post, '.SSPREFIX.'posts.permalink, '.SSPREFIX.'posts.fecha, '.SSPREFIX.'usuarios.nombre, '.SSPREFIX.'usuarios.apellido, '.SSPREFIX.'usuarios.permalink AS userperma FROM '.SSPREFIX.'posts INNER JOIN '.SSPREFIX.'usuarios ON '.SSPREFIX.'usuarios.id = '.SSPREFIX.'posts.usuario WHERE '.SSPREFIX.'posts.permalink = :permalink ORDER BY '.SSPREFIX.'posts.fecha DESC LIMIT 1';
    $stn = $conexion -> prepare($SQL);
    $stn -> bindParam(':permalink' , $permalink, PDO::PARAM_INT);
    $stn -> execute();
    $rstl = $stn -> fetchAll();
    if (empty($rstl)){
      # code...
    }else{
      foreach ($rstl as $key){

        
        // imagen de perfil 
        $profileimg = userprofile($key['userid']);

        // Fecha
        $fecha = fechastring($key['fecha'],$key['permalink']);

        // Imagen de perfil en el post
        $perfilactual = userprofile($_SESSION['ssid']);


        echo'
 
        <div id="post-public'.$key['postingid'].'" class="box box-widget">
            <div class="box-header with-border">
              <div class="user-block">
                <img class="img-circle" src="'.$profileimg.'" alt="'.$key['nombre'].' '.$key['apellido'].'">
                <span class="username"><a href="profile.php?'.$key['userperma'].'">'.$key['nombre'].' '.$key['apellido'].'</a></span>
                '.$fecha.'
              </div>
              <!-- /.user-block -->
            </div>
            <!-- /.box-header -->
            <div class="box-body">
              <!-- post text -->
 
              if ($key['posttipo'] == 1){
                profileimageposttake($key['post']);
              }elseif ($key['posttipo'] == 3) {
                portadaimageposttake($key['post']);
              }elseif ($key['posttipo'] == 4) {
 
                $postexplode = explode('|', $key['post']);
                getattachblock($postexplode[0],$postexplode[1]);
 
              }else{
                echo'<p>'.emoticons($key['post']).'</p>';
              }
 
              echo'<!-- Social sharing buttons -->
              ';

              checklike($key['postingid']);

              echo'
 
              <span id="likecomment'.$key['postingid'].'" class="pull-right text-muted">
                 ';

                      checklikeandcomments($key['postingid']);

                 echo'
              </span>
            </div>
 
            <!-- /.box-footer -->
            <div class="box-footer">
              <form class="commentfrm" data-form="'.$key['postingid'].'" id="commentfrm'.$key['postingid'].'">
                <img  id="mypiccomment" class="img-responsive img-circle img-sm" src="'.$perfilactual.'">
                <!-- .img-push is used to add margin to elements next to floating images -->
                <div class="img-push">
                  <input type="text" class="form-control input-sm" name="comentario" placeholder="Comentar...">
                </div>
              </form>
            </div>
            <!-- /.box-footer -->
 
            <!-- /.box-body -->
            <div id="box-commets-body-'.$key['postingid'].'" class="box-footer box-comments">';
 
               commentsajx($key['postingid'],$key['permalink']);

             echo'</div>
          </div>
 
        ';

      }
    }


    $conexion = '';

}

En la función:
1
validextlist()


Indica que dichas extensiones permitidas se ubican en "SELECT archiveextensions FROM '.SSPREFIX"

Y esto es lo que encontré:
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
    // Incluimos las funciones del sistema
    require_once '../administrator/ss-functions.php';
 
 
    // Revisamos si existe la sesion o si es valida
    isuserajax();
 
    // Si el posttext es vacio
    if (empty($_POST['descripcion'])){exit();}
 
 
    // Si es un espacio
    if (ctype_space($_POST['descripcion'])){exit();}
 
    // Primero el Año
    $theyear = date('Y');
 
    // Ahora el Mes 
    $themonth = date ('m');
 
    // creamos directorio para el usuario el año
    if(!is_dir("../attachments/".$_SESSION['ssid']))
        mkdir("../attachments/".$_SESSION['ssid'], 0777);
 
    // creamos directorio para el usuario
    if(!is_dir("../attachments/".$_SESSION['ssid']."/".$theyear))
        mkdir("../attachments/".$_SESSION['ssid']."/".$theyear, 0777);
 
 
    // creamos directorio para el usuario el mes
    if(!is_dir("../attachments/".$_SESSION['ssid']."/".$theyear."/".$themonth))
        mkdir("../attachments/".$_SESSION['ssid']."/".$theyear."/".$themonth, 0777);
 
 
    //obtenemos el archivo a subir
    $file = $_FILES['archivo']['name'];
 
    // Obtenemos la extension
    $fileext = new SplFileInfo($file);
    $getextension = $fileext->getExtension();
 
    // convertimos extension a minusculas
    $extension = strtolower($getextension);
 
    // Aqui sacamos la lista de extensiones
    $extensionlst = gettheextattachment();
 
    // Aqui hacemos un explode para cada uno 
    $extexplode = explode("|", $extensionlst);
 
    // Contamos el total de extensiones
    $exttotal = count($extexplode);
 
 
    for ($i=0; $i < $exttotal; $i++) {
 
       if($extension === $extexplode[$i]){
           attachmentfiles($file,$_POST['descripcion']);
           exit();
       }
 
    }

Pero no sé qué modificar ahí para cambiar las extensiones...

Gracias de antemano, saludos !!
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
Imágen de perfil de Antonio

Cambiar los tipos de archivos permitidos

Publicado por Antonio (37 intervenciones) el 30/05/2017 20:03:08
Por más que le busco no logro encontrar la forma de cambiar esas extensiones..
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
Imágen de perfil de kip

Cambiar los tipos de archivos permitidos

Publicado por kip (861 intervenciones) el 31/05/2017 02:10:51
Hola, lo que veo es que las extensiones estan almacenadas en alguna tabla de la base de datos cuyo nombre es el valor de la constante SSPREFIX concatenado con 'socialconfig', fijate en esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    // Aqui sacamos la lista de extensiones
    $extensionlst = gettheextattachment();
 
    // Aqui hacemos un explode para cada uno 
    $extexplode = explode("|", $extensionlst);
 
    // Contamos el total de extensiones
    $exttotal = count($extexplode);
 
 
    for ($i=0; $i < $exttotal; $i++) {
 
       if($extension === $extexplode[$i]){
           attachmentfiles($file,$_POST['descripcion']);
           exit();
       }
 
    }

Justo en esta parte ahi esta diciendote de donde saca las extensiones que deben ser aceptadas a partir del retorno de aquella funcion gettheextattachment
1
2
    // Aqui sacamos la lista de extensiones
    $extensionlst = gettheextattachment();

Si vemos la definicion de aquella funcion afirma lo que te decia arriba, hace un SELECT a aquella tabla y luego retorna el valor del campo con las extensiones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Sacamos las extensiones permitidas para los archivos que se suben
function gettheextattachment(){
 
    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();
 
    $SQL = 'SELECT archiveextensions FROM '.SSPREFIX.'socialconfig WHERE id = 1';
    $stn = $conexion -> prepare($SQL);
    $stn -> execute();
    $rstl = $stn -> fetchAll();
    if (empty($rstl)){
    }else{
      foreach ($rstl as $key){
        $fileext = $key['archiveextensions'];
        return $fileext;
      }
    }
}

Aunque segun veo estas extensiones estan almacenadas algo asi:

1
EXT1|EXT2|EXT3....

Estan separadas por | ya que hace un explode mas arriba luego de obtener este string.

Te recomiendo que obtengas o te fijes en que parte del codigo declara aquella constante SSPREFIX para que busques la tabla en cuestion y hagas un cambio en la fila con ID 1.

Intentalo y nos avisas como te fue !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antonio

Cambiar los tipos de archivos permitidos

Publicado por Antonio (37 intervenciones) el 31/05/2017 17:24:54
Hola, gracias por comentar.
Lo único que pude encontrar fue donde se define de esta forma:
1
2
// Prefijo del sistema, por defecto es "jhss_" pero se recomienda cambiarlo.
define('SSPREFIX', 'jhss_');

Y pues, toda la bd viene así..
sgUyTB2

Cambiar unas simples extensiones se me ha echo más complicado de lo que pensé :s
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
Imágen de perfil de kip

Cambiar los tipos de archivos permitidos

Publicado por kip (861 intervenciones) el 31/05/2017 17:37:48
La tabla es jhss_socialconfig fijate en el primer registro con ID 1 o muestranos el contenido de seguro alli estan las extensiones !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Antonio

Cambiar los tipos de archivos permitidos

Publicado por Antonio (37 intervenciones) el 31/05/2017 17:51:44
Perfecto, ya lo encontré !!

Muchas Gracias :D
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