Actualmente, si no proporciono extensiones a la clase, no permite extensiones. Me gustaría permitir todas las extensiones. ¿Hay alguna forma de hacer esto sin hackear el núcleo?¿Cómo hacer que la clase de carga del archivo CodeIgniter acepte todas las extensiones?
Respuesta
en CodeIgniter 2, sólo hay que definir tipos permitidos así:
$config['allowed_types'] = '*';
Hasta ahora parece que solo sería posible mediante un truco.
He insertado un return true
en la línea 556 en system/libraries/Upload.php.
Prefiero hacer una biblioteca personalizada sobre la edición de la carpeta system/libraries /.La actualización a una nueva versión en CI usualmente significa reemplazar el viejo sistema/carpeta (excepto el sistema/aplicación /) con la última versión. CMIIW – andyk
La respuesta a su pregunta directa: No, no hay manera de hacer esto sin anular el núcleo
Para buena noticia es que puede evitar la piratería el núcleo, per the manual
Como un beneficio adicional, CodeIgniter permite que sus bibliotecas amplíen las clases nativas si simplemente necesita agregar alguna funcionalidad al una biblioteca existente. O incluso puede reemplazar bibliotecas nativas solo colocando versiones con nombres idénticos en su carpeta de aplicaciones/bibliotecas.
Por lo tanto, para tener una gota en el reemplazo para su biblioteca, se puede copiar a la carpeta upload.php
application/libraries
, y luego agregar su lógica personalizada para ese archivo upload.php. Code Igniter incluirá este archivo cada vez que cargue la biblioteca de carga.
Alternativamente, puede crear su propia clase de cargador de subida personalizado que amplíe el original y solo refine la función is_allowed_filetype.
application/libraries/MY_Upload.php
class MY_Upload Extends CI_Upload{
function is_allowed_filetype(){
//my custom code here
}
}
Usted querrá leer sobre the changelog cada vez que se va a actualizar, pero esto le permitirá mantener su código y el código del núcleo en universos separados.
¿Cómo va la codificación de magento a Alan? –
Lo que hago es:
$ext=preg_replace("/.*\.([^.]+)$/","\\1", $_FILES['userfile']['name']);
$fileType=$_FILES['userfile']['type'];
$config['allowed_types'] = $ext.'|'.$fileType;
Eso hace que todos los archivos en cada llamada a la función permitido automáticamente.
Bueno, eso es una tontería! :-) –
Usted sólo tendrá que sustituir esta condición:
if (! $this->is_allowed_filetype())
{
$this->set_error('upload_invalid_filetype');
return false;
}
Con:
if (count($this->allowed_types) && !$this->is_allowed_filetype())
{
$this->set_error('upload_invalid_filetype');
return false;
}
$config['allowed_types'] = '*';
que cargará cualquier formato de archivo como .exe o .jpegs extra ...
si todos no funciona, entonces reorganizar el orden de los tipos permitidos al igual que en el primer formato de vídeo
$config['allowed_types'] = 'mp4|jpg|png|'
Será obras en mi caso por lo común, si es posible probarlo.
- 1. carga del archivo codeigniter - ¿opcional?
- 2. Permiso de archivo con clase de carga de CodeIgniter
- 3. CodeIgniter: validación requerida de carga de archivo
- 4. ¿Cómo funciona la carga de codeigniter?
- 5. Problemas con las extensiones modulares de HMVC para CodeIgniter
- 6. Cómo hacer que PagerAdapter cargue todas las páginas
- 7. redirigir todas las extensiones .html a .php
- 8. PHP - CSRF - ¿Cómo hacer que funcione en todas las pestañas?
- 9. ¿Cómo hacer las pruebas de carga del servidor node.js?
- 10. Extensiones de Ruby c: ¿Cómo puedo detectar todas las excepciones, incluidas las que no son StandardErrors?
- 11. Python: ¿Cómo hacer que StringIO.writelines acepte una cadena unicode?
- 12. ¿Cómo hacer que Spring acepte facilitadores fluidos (no-vacíos)?
- 13. ¿Cómo puedo hacer que un host virtual acepte varios dominios?
- 14. ¿Cómo puedo hacer que NSMutableArray solo acepte valores únicos?
- 15. ¿Cómo hacer que un TextBox acepte solo caracteres alfabéticos?
- 16. ¿Cómo encontrar todas las extensiones de archivo recursivamente desde un directorio?
- 17. Cómo hacer que Fiddler escuche todas las direcciones IP
- 18. Codeigniter carga de archivos múltiples messes extensión de archivo
- 19. ¿Cómo puedo hacer que vim reconozca la codificación del archivo?
- 20. Cómo enumerar todas las propiedades de clase
- 21. Eliminar extensiones del nombre de archivo
- 22. Carga de un csv en Codeigniter
- 23. Cómo funcionan las sesiones en Codeigniter
- 24. Cómo permitir que <input type = "file"> acepte solo archivos de imagen
- 25. Extensiones de Chrome que acceden a la información del encabezado
- 26. AspectJ Tiempo de carga weaver no detecta todas las clases
- 27. ¿Cómo hacer todas las llamadas AJAX secuencialmente?
- 28. ¿Cómo hacer que las variables estén disponibles en la plantilla?
- 29. PHP cómo enumerar todas las funciones públicas de la clase
- 30. ¿Cómo restaurar Xcode para que acepte la arquitectura armv6?
Funciona también en CodeIgniter 3 – moveax