Actuellement, si je ne fournis aucune extension à la classe, elle n'autorise aucune extension. Je voudrais autoriser toutes les extensions. Y at-il un moyen de le faire sans piratage du noyau?Comment rendre la classe de téléchargement de fichiers CodeIgniter accepter toutes les extensions?
Comment rendre la classe de téléchargement de fichiers CodeIgniter accepter toutes les extensions?
Répondre
Dans Codeigniter 2, il vous suffit de définir les types autorisés comme ceci:
$config['allowed_types'] = '*';
Jusqu'à présent, il semble que ce ne serait possible que via un hack.
J'ai inséré un return true
à la ligne 556 dans system/libraries/Upload.php.
Je préfère créer une bibliothèque personnalisée plutôt que d'éditer le système/libraries/folder.La mise à jour d'une nouvelle version sur CI implique généralement le remplacement de l'ancien système/dossier (sauf system/application /) par la dernière version. CMIIW – andyk
La réponse à votre question directe: Non, il n'y a aucun moyen de le faire sans écraser le noyau
Pour de bonnes nouvelles est que vous pouvez éviter le piratage du noyau, per the manual
En prime, CodeIgniter permet à vos bibliothèques d'étendre les classes natives si vous avez simplement besoin d'ajouter une fonctionnalité à une bibliothèque existante. Ou vous pouvez même remplacer les bibliothèques natives par en plaçant des versions nommées identiquement dans votre dossier application/libraries.
donc, d'avoir une baisse de remplacement pour votre bibliothèque, vous pouvez copier upload.php à votre
application/libraries
dossier
, puis ajoutez votre logique personnalisée à ce fichier upload.php. Code Igniter inclura ce fichier à la place lorsque vous chargez la bibliothèque de téléchargement.
Alternativement, vous pouvez créer votre propre classe d'uploader personnalisée qui étend l'original, et affine seulement la fonction is_allowed_filetype.
application/libraries/MY_Upload.php
class MY_Upload Extends CI_Upload{
function is_allowed_filetype(){
//my custom code here
}
}
Vous voulez lire plus the changelog chaque fois que vous mettez à jour, mais cela vous permettra de garder votre code et le code de base dans des univers séparés.
Comment va le codage magento Alan? –
Ce que je fais est:
$ext=preg_replace("/.*\.([^.]+)$/","\\1", $_FILES['userfile']['name']);
$fileType=$_FILES['userfile']['type'];
$config['allowed_types'] = $ext.'|'.$fileType;
Cela fait tous les fichiers dans chaque appel de fonction admis automatiquement.
Eh bien, c'est juste idiot! :-) –
Vous avez simplement besoin de remplacer cette condition:
if (! $this->is_allowed_filetype())
{
$this->set_error('upload_invalid_filetype');
return false;
}
Avec:
if (count($this->allowed_types) && !$this->is_allowed_filetype())
{
$this->set_error('upload_invalid_filetype');
return false;
}
$config['allowed_types'] = '*';
Qui téléchargera n'importe quel format de fichier comme .exe ou .jpegs ...
si toutes les œuvres non alors modifier l'ordre de type autorisé comme dans le premier format vidéo
$config['allowed_types'] = 'mp4|jpg|png|'
Il aura des œuvres dans mon cas, donc je partage si possible essayer.
- 1. Téléchargement/Téléchargement de plusieurs fichiers Simultanément en utilisant FTPWebrequest Classe
- 2. comment rendre le comportement WCF webHttp accepter les verbes HEAD?
- 3. Images pour les extensions de fichiers
- 4. sécurité de téléchargement de fichier, htaccess et modification des extensions
- 5. Téléchargement de fichiers
- 6. Comment accéder à la classe de contrôleur dans CodeIgniter
- 7. Puis-je obtenir toutes les extensions de fichiers texte dans le référentiel dans CVS?
- 8. Évitant Héritant Toutes les choses de la classe de base
- 9. Utilisation de toutes les surcharges de la classe de base
- 10. téléchargement de fichiers multiples
- 11. Comment rendre la classe ImageMagick Imagick disponible?
- 12. importer toutes les variables de classe parente
- 13. Comment gérer la popup de téléchargement de fichiers
- 14. Où se trouvent les fichiers sources des extensions de Groovy?
- 15. mamp rendre les noms de fichiers insensibles à la casse
- 16. système de téléchargement de fichiers
- 17. Comment parcourir toutes les propriétés d'une classe?
- 18. La super classe de toutes les classes d'événements
- 19. Comment énumérer toutes les classes avec l'attribut de classe personnalisée?
- 20. CMD: reconnaissance des extensions de fichiers?
- 21. Codeigniter obtenir des clés de fichiers de langue
- 22. Stratégie de téléchargement de fichiers Tomcat 6
- 23. Comment rendre un constructeur disponible uniquement pour la classe d'usine?
- 24. Comment filtrer les fichiers qui peuvent être vus sur la boîte de dialogue de téléchargement?
- 25. commencer le téléchargement de fichiers avec ajax
- 26. Rendre les fichiers téléchargés sur s3 public
- 27. Outil de téléchargement de fichiers multiples
- 28. de CodeIgniter pour la pagination d'image
- 29. Obtenir les noms de fichiers JavaScript des formulaires JavaScript dans CodeIgniter
- 30. Comment rendre la classe personnalisée lisible dans WPF?
Fonctionne aussi dans CodeIgniter 3 – moveax