configurar pluggin File

Alguien sabria decirme que codigo hay que cambiar para limitar el pluggin File para subir solo archivos de un tipo, por ejemplo para subir solo musica MP3 o subir solo imagenes JPG

Saludos

  • Voy a intentar ayudarte sin tener la certeza de que sea lo correcto y sin saber si te servirá de mucho ;) Pero por intentarlo que no quede.

    En la carpeta tucarpeta\mod\file\actions se encuentra upload.php que mirando un poco por encima es realmente el encargado de gestionar la subida del archivo.

    php utiliza para recojer información antes de subir archivos:

    1. $_FILES['nombre de la entrada']['size'] //Tamaño del archivo
    2. $_FILES['nombre de la entrada']['type'] //Tipo del archivo
    3. $_FILES['nombre de la entrada']['name'] //nombre del archivo
    en upload.php recoje esta información en la linea 95:
    $file->simpletype = get_general_file_type($_FILES['upload']['type']);
    y a partir de ahí ya podrías condicionar la subida del archivo si el tipo no es el que buscas.
    Si te refieres a que sólo pueda ser música en mp3 o sólo imágenes JPG puedes condicionarlo analizando el nombre del fichero como un string y comprobando que contiene la subcadena ".JPG" o ".MP3".
    No sé como vas de php, dime y en función de eso te digo más 

     

     

     

     

     

     

  • De PHP ando mal, muy mal, lo mas cerca que ando del PHP es abrir archivo de traducciones y/o reemplazar codigos con el tipico copy-paste.

    Pues mira me conformaria con solo archivos JPG, despues de lanzar la pregunta un amigo me ha dicho que puedo tener problemas con el mp3 y los derechos de autor, asi que solo la opcion para que los usuarios suban sus fotos.

    El archivo File tal cual esta muy bien pero no puedo usarlo por tres buenos motivos:

    • el tamaño de los archivos, mi hosting esta limitado a 2gb
    • subir archivos exe equivale a que compartan malware,virus,etc
    • mp3 y exe comerciales darian problemas con los derechos de autor

    Supongo que a mas de uno le pasara como a mi y echara de menos modificar algunos parametros desde un panel de configuracion pero bueno me imaginé como bien dices que solo es cuestion de un filtro para los JPG . Creo que para subir una imagen de avatar en Elgg se utiliza un filtro de solo imagenes, que mas o menos seria lo que busco.

  • ok, pues para solucionar eso creo que lo más fácil sería comprobar que se trata de una imagen y que no supera el tamaño máximo que especifiques. En caso de que el usuario no cumpliera con esto a la hora de subir un archivo podrías mostrarle la ventanita roja/verde en la parte superior diciendo algo como "Superó el tamaño máximo (1kb) Archivo no subido" o "No es una imagen!", etc...

    copia y pega esto en tucarpeta\mod\file\actions\upload.php  debajo de la linea 95

    if(($_FILES['upload']['type']!="image") && ($_FILES['upload']['size']> 1000)) //Tamaño en bytes.

        {

          register_error(elgg_echo("Imposible subir. Debe ser una imagen (1kb máx)"));

          return 1;      

       }

    Es una solución un poco "chapucera" pero no creo que de ningún problema y consigue lo que quieres no? 

    Si quieres que sea sólo y exclusivamente jpg, con cambiar "image" por "image/jpg" creo que valdría. Para cambiar el tamaño máximo cambia 1000 por el numero de bytes que quieras.

    Lo acabo de probar y funciona.

    Algo más? jaja

     


     

  • Perfecto, eres un monstruo pisha, me lo has solucionado en un plis.

    Muchas gracias Eskroker, aun me quedan algunos problemillas menores pero este era el tropezon mas gordo para abrir la red al publico, lo del tamaño como no tengo usuarios aun lo subire a 2 megas, con un 1kb se va a imaginar la gente que en mi hosting pusieron un sinclair spectrum XD

    Gracias, saludos desde Cadiz.

  • si solo quieres que se descarguen imagenes y documentos por que todos sabemos que descargar musica y programas es ilegal 

    es facil

    remplaza serca de la linea 157

    mod/file/views/default/object/file.php

    <?php

    $mime = $file->getMimeType();

    if ($mime != "audio/mpeg") {

    ?>

    <div class="filerepo_download"><p><a href="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $file_guid; ?>"><?php echo elgg_echo("file:download"); ?></a></p></div>

    <?php

    }

    ?>

  • este pedazo de codigo detecta el MimeType "audio/mpeg"  entonces si es un archivo de audio automaticamente desactiva el boton download o descargar

  • Muchas gracias Mariano pero no es lo que busco, he estado averiguando y tampoco esta permitido que la web pueda reproducir musica con copyrights, lo mismo que pasa con youtube y ciertos videos, seguramente como todos habras visto alguna vez la pantalla que dice que el video se ha retirado porque el propietario legal, -Sony por ejemplo- ha hecho una reclamacion.

    Ademas seguiria teniendo el problema del espacio en disco, los mp3 suelen tener mas de 3mb de media.

    De todas formas aunque no sea el adecuado para mi, me parece un codigo muy interesante.

    Gracias de todas formas Mariano, se agradece la intencion,  saludos desde el otro lado del charco.

  • Por cierto olvide decir la version de Elgg  para el plugin File, yo estoy usando la 1.8, si a alguien le interesa saberlo, un par de detallitos casi obvios, el archivo a modificado por eskroler estaria en la siguiente subcarpeta indicada  tucarpeta\mod\file\actions\file\upload.php y la linea a incluir no debajo de la 95 sino de la 96.

    Resumiendo: el filtro de solo imagenes funciona en la version 1.8 de Elgg

  • ¡Muy buenas opciones para modificar el File!

    Aunque me gustaría aclarar que no es ilegar subir o descargar música, videos o programas siempre y cuando no violen derechos de autor.

    Por ejemplo, si yo subo elgg comprimido a otra web para que lo descarguen, es un programa y no sería ilegal. ¿Se entiende?

    Lo que se suele hacer en sitios/comunidades es generar un botón de denuncia de contenido, de esa manera si alguien ve que sus derechos están siendo violados puede denunciarlo al administrador, y este procedería a analizar la situación y actuar.

    En casi todos los países del mundo, el procedimiento es ese:

    • La comunidad puede compartir,
    • El administrador no es responsable del contenido, pero tiene que generar un protocolo de denuncia y solución.
    • El archivo o enlace es retirado.

    Existen sitios dedicados a compartir recursos con diversas licencias que lo permiten, si necesitan alguno pueden buscarlo en http://search.creativecommons.org/#.

    Saludos

Spanish Community Group

Spanish Community Group

Spanish support group. Grupo de apoyo de usuarios en español