Título: restriccion de arvhivos
Publicado por: jalbtercero en 6 Marzo 2016, 17:27 pm
tengo este codigo en el que se supones que solo se puede subir rar zip odt y pdf. Pero siempre me da error de que el tamaño es demasiado grande o no esta permitido y solo subo un odt de 16kb <?php if(isset($_POST['boton'])) { if ((($_FILES["archivo-a-subir"]["type"] == "file/odt") || ($_FILES["archivo-a-subir"]["type"] == "file/pdf") || ($_FILES["archivo-a-subir"]["type"] == "file/rar") || ($_FILES["archivo-a-subir"]["type"] == "file/zip")) && ($_FILES["archivo-a-subir"]["size"] < 250000000)) { $target_path = "subidas/"; $target_path = $target_path . basename( $_FILES['archivo-a-subir']['name']); { require("connect_db.php"); $nombre=$_SESSION["usuario"]; $desc=$_POST['desc']; $direccion='subidas/'.basename( $_FILES['archivo-a-subir']['name']); $pass=rand(0,1000000000); mysql_query("INSERT INTO archivos VALUES('$nombre','$desc','$direccion','$pass')"); echo "El archivo ". basename( $_FILES['archivo-a-subir']['name'])." ha sido subido exitosamente!"; } else { echo "Hubo un error al subir tu archivo! Por favor intenta de nuevo."; } } else { echo "El tamaño del archivo no esta permitido o el archivo esta prohibido"; } }
Título: Re: restriccion de arvhivos
Publicado por: engel lex en 6 Marzo 2016, 17:39 pm
solo para ayudarte a esclarecer el hecho que está fallando, agrega al else echo "<pre>"; echo "</pre>";
Título: Re: restriccion de arvhivos
Publicado por: #!drvy en 6 Marzo 2016, 17:42 pm
Los Media Types que tienes son incorrectos. <?php if(isset($_POST['boton'])) { if ((($_FILES["archivo-a-subir"]["type"] == "application/odt") || ($_FILES["archivo-a-subir"]["type"] == "application/pdf") || ($_FILES["archivo-a-subir"]["type"] == "application/x-rar-compressed") || ($_FILES["archivo-a-subir"]["type"] == "application/zip")) && ($_FILES["archivo-a-subir"]["size"] < 250000000)) {
https://en.wikipedia.org/wiki/Media_type http://www.freeformatter.com/mime-types-list.html Para ver el media type de un archivo, simplemente imprimelo antes de tomar cualquier acción. <?php if(isset($_FILES['archivo-a-subir']['type'])){ print_r($_FILES['archivo-a-subir']['type']); }
Saludos
Título: Re: restriccion de arvhivos
Publicado por: jalbtercero en 6 Marzo 2016, 18:05 pm
solo para ayudarte a esclarecer el hecho que está fallando, agrega al else echo "<pre>"; echo "</pre>";
Gracias me ayudo mucho por cierto alguin subio esto a mi pagina: <?php /** * @file * Handles incoming requests to fire off regularly-scheduled tasks (cron jobs). */ /** * Root directory of Drupal installation. */ include_once DRUPAL_ROOT . '/includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); if (!isset($_GET['cron_key']) || variable_get ('cron_key', 'drupal') != $_GET['cron_key']) { watchdog ('cron', 'Cron could not run because an invalid key was used.', array(), WATCHDOG_NOTICE ); drupal_access_denied(); } elseif (variable_get('maintenance_mode', 0)) { watchdog ('cron', 'Cron could not run because the site is in maintenance mode.', array(), WATCHDOG_NOTICE ); drupal_access_denied(); } else { drupal_cron_run(); }
no,lo entiendo del todo
Título: Re: restriccion de arvhivos
Publicado por: MinusFour en 6 Marzo 2016, 18:21 pm
No puedes comprobar si un archivo es realmente una imagen/pdf/oct, etc en base a ese mime type, porque cualquiera puede enviar un Content-Type falso. $_FILES['userfile']['type'] The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.
|