add parameter file name to htmlForm() method
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Nicolas COMPAIN 2024-01-28 11:25:10 +00:00
parent 0862eee2b5
commit 24e3d9aa50
6 changed files with 36 additions and 8 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
.phpunit.result.cache
vendor
composer.lock
.DS_Store

View File

@ -65,6 +65,10 @@ Pour utiliser cette fonctionnalité, vous appelez simplement la méthode htmlFor
```php
$form = $client->htmlForm();
```
Par défaut le nom du fichier ZIP généré sera "download.zip". Vous pouvez le personnaliser en passant un paramètre à la méthode htmlForm() :
```php
$form = $client->htmlForm('mon-zip.zip');
```
### Renommer les Fichiers dans le ZIP
Par défaut, les fichiers téléchargés sont nommés en fonction de leur URL. Vous pouvez cependant personnaliser le nom des fichiers dans le ZIP en utilisant la méthode `name` de l'objet `FileOptions`. Cette option peut être utile lorsque plusieurs fichiers ont le même nom ou lorsque vous souhaitez simplement renommer les fichiers pour une meilleure lisibilité.

View File

@ -2,7 +2,7 @@
"name": "nwb/multi-downloader-client",
"description": "Client for multi-downloader-service",
"type": "library",
"version": "0.0.8",
"version": "0.0.9",
"autoload": {
"psr-4": {
"Nwb\\MultiDownloaderClient\\": "src/"

View File

@ -126,10 +126,25 @@ class MultiDownloaderClient
* sous forme de chaîne de caractères. Utilisée pour générer dynamiquement
* un formulaire de téléchargement dans une page web.
*
* @param string $fileName Nom du fichier zip à télécharger. Si non spécifié, le nom du fichier sera généré automatiquement.
* @return string Le formulaire HTML généré pour le téléchargement.
*/
public function htmlForm(): string
public function htmlForm($fileName = null): string
{
$zipName = ''; // Utilisé dans htmlForm.php
if (!empty($fileName)) {
$zipName = trim($fileName);
// Si le nom du fichier ne se termine pas par .zip, on l'ajoute
if (substr($zipName, -4) !== '.zip') {
$zipName .= '.zip';
}
// Si le nom du fichier ne commence pas par un slash, on l'ajoute
if (substr($zipName, 0, 1) !== '/') {
$zipName = '/' . $zipName;
}
}
$json_string = addslashes(json_encode($this->buildRequest()));
ob_start();
include __DIR__ . '/htmlForm.php';

View File

@ -24,7 +24,7 @@ use Nwb\MultiDownloaderClient\MultiDownloaderClient;
<body>
<div id="button_div" class="modal-dialog-buttons">
<form name="f" id="f" method="POST" action="<?= $this->url ?>/v2/form/zip" enctype="multipart/form-data">
<form name="f" id="f" method="POST" action="<?= $this->url ?>/v2/form/zip<?= $zipName ?>" enctype="multipart/form-data">
<input type="hidden" name="json" value='<?= json_encode($this->buildRequest()) ?>' />
<noscript>

View File

@ -49,8 +49,16 @@ class MultiDownloaderClientTest extends TestCase
{
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
$client->setFiles($this->testFiles());
echo $client->htmlForm();
// echo $client->htmlForm();
$this->assertTrue(true);
}
public function testFormDlZipNameSpecified()
{
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
$client->setFiles($this->testFiles());
$output = $client->htmlForm("test123");
$this->assertStringContainsString('action="https://multi-dl.kub.nwb.fr/v2/form/zip/test123.zip"', $output);
}
}