Maison  >  Article  >  cadre php  >  Implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman

Implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman

WBOY
WBOYoriginal
2023-11-08 18:02:161303parcourir

Implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman

Pour implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman, des exemples de code spécifiques sont requis

Introduction :
Workerman est un framework de communication réseau asynchrone PHP hautes performances, simple, efficace et facile à utiliser. Dans le développement réel, le téléchargement et le téléchargement de fichiers sont des exigences fonctionnelles courantes. Cet article explique comment utiliser le framework Workerman pour implémenter le téléchargement et le téléchargement de fichiers, et donne des exemples de code spécifiques.

1. Téléchargement de fichiers :

Le téléchargement de fichiers fait référence à l'opération de transfert de fichiers de l'ordinateur local vers le serveur. Voici un exemple de code spécifique permettant d'utiliser Workerman pour implémenter le téléchargement de fichiers :

  1. Créer du code côté serveur
<?php
use WorkermanWorker;
require_once __DIR__ . '/Workerman/Autoloader.php';

$worker = new Worker('tcp://0.0.0.0:8080');
$worker->onMessage = function($connection, $data) {
    if(isset($data['type']) && $data['type'] === 'file'){
        if (isset($data['content']) && isset($data['fileName'])) {
            file_put_contents($data['fileName'], $data['content']);
            $connection->send('文件上传成功!');
        } else {
            $connection->send('文件上传失败!');
        }
    }
};
Worker::runAll();
  1. Créer du code côté client
<?php
use WorkermanConnectionAsyncTcpConnection;
require_once __DIR__ . '/Workerman/Autoloader.php';

$connection = new AsyncTcpConnection('tcp://127.0.0.1:8080');
$connection->onConnect = function() use ($connection){
    $connection->send(array('type' => 'file', 'content' => file_get_contents('test.txt'), 'fileName' => 'test.txt'));
};
$connection->onMessage = function($connection, $data){
    echo $data . PHP_EOL;
};
$connection->connect();
AsyncWorker::runAll();

Dans le code ci-dessus, le côté serveur lie un port TCP. Lorsqu'il y a une connexion, déterminez si les données transmises sont un contenu de fichier et, si tel est le cas, écrivez le contenu du fichier dans le fichier. Une fois que le client se connecte au serveur, il envoie le contenu du fichier test.txt local au serveur.

2. Téléchargement de fichiers :

Le téléchargement de fichiers fait référence à l'opération de transfert de fichiers du serveur vers l'ordinateur local. Voici un exemple de code spécifique permettant d'utiliser Workerman pour implémenter le téléchargement de fichiers :

  1. Créer du code côté serveur
<?php
use WorkermanWorker;
require_once __DIR__ . '/Workerman/Autoloader.php';

$worker = new Worker('tcp://0.0.0.0:8080');
$worker->onMessage = function($connection, $data) {
    if(isset($data['type']) && $data['type'] === 'file'){
        if (isset($data['fileName']) && file_exists($data['fileName'])) {
            $connection->send(file_get_contents($data['fileName']));
        } else {
            $connection->send('文件不存在!');
        }
    }
};
Worker::runAll();
  1. Créer du code côté client
<?php
use WorkermanConnectionAsyncTcpConnection;
require_once __DIR__ . '/Workerman/Autoloader.php';

$connection = new AsyncTcpConnection('tcp://127.0.0.1:8080');
$connection->onConnect = function() use ($connection){
    $connection->send(array('type' => 'file', 'fileName' => 'test.txt'));
};
$connection->onMessage = function($connection, $data){
    file_put_contents('download.txt', $data);
    echo '文件下载成功!' . PHP_EOL;
};
$connection->connect();
AsyncWorker::runAll();

Dans le code ci-dessus, le côté serveur lie un port TCP. Lorsqu'il y a une connexion, déterminez si les données transmises sont un nom de fichier et si le fichier existe. S'il existe, envoyez le contenu du fichier au client. Une fois que le client se connecte au serveur, il envoie le nom du fichier à télécharger au serveur. Le serveur envoie le contenu du fichier au client et écrit le contenu dans le fichier download.txt local.

Conclusion :
Grâce aux exemples de code ci-dessus, nous pouvons voir qu'il est très simple d'utiliser le framework Workerman pour télécharger et télécharger des fichiers. Grâce à une configuration et à l'écriture de code simples, nous pouvons facilement implémenter des fonctions de téléchargement et de téléchargement de fichiers, améliorer l'expérience utilisateur des applications Web et améliorer l'efficacité du développement. J'espère que cet article vous sera utile.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn