Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.
Exemple
Apportez des modifications au fichier config/routes.php, comme indiqué dans le programme suivant.
config/routes.php
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']); $builder->connect('fileupload',['controller'=>'Files','action'=>'index']); $builder->fallbacks(); });
Créez un fichier FilesController.php dans src/Controller/FilesController.php. Copiez le code suivant dans le fichier du contr?leur. Ignorer, si déjà créé.
Créez le répertoire uploads/ dans src/. Les fichiers téléchargés seront enregistrés dans le dossier uploads/.
src/Controller/FilesController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\View\Helper\FormHelper; class FilesController extends AppController { public function index(){ if ($this->request->is('post')) { $fileobject = $this->request->getData('submittedfile'); $uploadPath = '../uploads/'; $destination = $uploadPath.$fileobject->getClientFilename(); // Existing files with the same name will be replaced. $fileobject->moveTo($destination); } } } ?>
Créez un répertoire Files dans src/Template et sous ce répertoire, créez un fichier View appelé index.php. Copiez le code suivant dans ce fichier.
src/Template/Files/index.php
<?php echo $this->Form->create(NULL, ['type' => 'file']); echo $this->l;Form->file('submittedfile'); echo $this->Form->button('Submit'); echo $this->Form->end(); $uploadPath ='../uploads/'; $files = scandir($uploadPath, 0); echo "Files uploaded in uploads/ are:<br/>"; for($i = 2; $i < count($files); $i++) echo "File is - ".$files[$i]."<br>"; ?>
Les fichiers enregistrés dans le dossier uploads/ sont répertoriés pour l'utilisateur. Exécutez l'exemple ci-dessus en visitant l'URL suivante -
http://localhost/cakephp4/fileupload ?
Sortie
Lorsque vous exécutez le code ci-dessus, vous devriez voir le résultat suivant ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

La méthode pour obtenir l'ID de session en cours dans PHP est d'utiliser la fonction session_id (), mais vous devez appeler session_start () pour l'obtenir avec succès. 1. Appelez session_start () pour démarrer la session; 2. Utilisez session_id () pour lire l'ID de session et sortir une cha?ne similaire à ABC123DEF456GHI789; 3. Si le retour est vide, vérifiez si session_start () est manquant, si l'utilisateur accède pour la première fois, ou si la session est détruite; 4. L'ID de session peut être utilisé pour l'exploitation forestière, la vérification de la sécurité et la communication croisée, mais la sécurité doit être prêtée attention. Assurez-vous que la session est correctement activée et que l'ID peut être obtenu avec succès.

Pour extraire les sous-cha?nes de cha?nes PHP, vous pouvez utiliser la fonction substr (), qui est Syntax substr (String $ string, int $ start ,? int $ longueur = null), et si la longueur n'est pas spécifiée, elle sera interceptée à la fin; Lors du traitement des caractères multi-octets tels que le chinois, vous devez utiliser la fonction mb_substr () pour éviter le code brouillé; Si vous avez besoin d'intercepter la cha?ne en fonction d'un séparateur spécifique, vous pouvez utiliser exploit () ou combiner strpos () et substr () pour l'implémenter, tels que l'extraction d'extensions de nom de fichier ou de noms de domaine.

UnittestingInphpinvolvesverifierifySindividualCodeUnits like outweethodstocatchbugSearlyAndensureReliveLerefactoring.1) setupphpunitviacomposer, createAtestDirectory, andconfigureAutoloadandphpunit.xml.2)

Dans PHP, la méthode la plus courante consiste à diviser la cha?ne en un tableau à l'aide de la fonction Exploit (). Cette fonction divise la cha?ne en plusieurs parties via le délimiteur spécifié et renvoie un tableau. La syntaxe est Exploit (séparateur, cha?ne, limite), où le séparateur est le séparateur, la cha?ne est la cha?ne d'origine et la limite est un paramètre facultatif pour contr?ler le nombre maximum de segments. Par exemple $ str = "pomme, banane, orange"; $ arr = explosage (",", $ str); Le résultat est ["Apple", "Bana

Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

STD :: Chrono est utilisé en C pour traiter le temps, y compris l'obtention de l'heure actuelle, la mesure du temps d'exécution, le point de fonctionnement et la durée de l'opération et le temps d'analyse de formatage. 1. Utilisez STD :: Chrono :: System_clock :: Now () pour obtenir l'heure actuelle, qui peut être convertie en une cha?ne lisible, mais l'horloge système peut ne pas être monotone; 2. Utilisez STD :: Chrono :: standard_clock pour mesurer le temps d'exécution pour assurer la monotonie, et la convertir en millisecondes, secondes et autres unités via durée_cast; 3. Point de temps (temps_point) et durée (durée) peut être interopérable, mais l'attention doit être accordée à la compatibilité des unités et à l'époque de l'horloge (époque)

Utilisez des instructions préparées dans PHP principalement pour éviter les attaques d'injection SQL, améliorer les performances, rendre le code plus clair et plus facile à déboguer. 1. Il empêche efficacement l'injection de SQL par des requêtes paramétrées, garantissant que la saisie de l'utilisateur est toujours traitée sous forme de données plut?t que de logique SQL; 2. Les déclarations de prétraitement ne doivent être compilées qu'une fois lorsqu'elles sont exécutées plusieurs fois, améliorant considérablement l'efficacité de l'exécution, en particulier adaptée aux opérations par lots; 3. La liaison des paramètres prend en charge la position et les espaces réservés nommés, sépare SQL et les données, et améliore la lisibilité et la maintenance du code; 4. Les erreurs peuvent être exposées à l'avance à l'étape de préparation, et les exceptions peuvent être gérées uniformément en définissant le mode d'erreur, ce qui aide à déboguer rapidement.

TOACCESSENSIRONDAMENTVARIBLESSInPHP, useGettenv () Orthe $ _ENVSUPERGLOBAL.1.getenv ('var_name') RetrievesAsaspecificVariable.2. $ _ En V ['var_name'] AccesssaSVariblesifVariables_OrderInphp.iniIncluses "E" .setVariblesVICLIWithVar = ValuePpript.Php, INAPACH
