Как создать защищенный паролем почтовый файл на FTP-сервере с помощью PHP - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел бы создать zip-файл, защищенный паролем, на ftp-сервере, используя php.Я попробовал код ниже, но он не работает.Код ниже может работать локально, но когда я ставлю на FTP-сервер, он не работает.У меня есть один client.php в локальном и один server.php в ftp-сервере.Я поместил код ниже в server.php. (ZipArchive или 7-zip оба также могут быть приняты)

(Код ниже не включает функцию создания пароля. Это просто для создания только zip-файла.)

$zip = new ZipArchive;
if ($zip->open('Ftp://user.com/new/temp.zip', 
 ZipArchive::CREATE) === TRUE)
{
    // Add files to the zip file
    $zip->addFile('Ftp://user.com/new/temp/*');

    // All files are added, so close the zip file.
    $zip->close();
    echo"Create Successful";
}

Ожидаемый вывод:

Создание защищенного паролем zip-файла успешно завершено.

Фактический вывод:

На ftp-сервере не создано zip-файла.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename( $_FILES[ "fileToUpload" ][ "name" ] );


if ( isset( $_POST[ "submit" ] ) ) {

  if ( move_uploaded_file( $_FILES[ "fileToUpload" ][ "tmp_name" ], $target_file ) ) {
      echo "The file " . basename( $_FILES[ "fileToUpload" ][ "name" ] ) . " has been uploaded.";
  } else {
      echo "Sorry, there was an error uploading your file.";
  }
}
?>

Вот код, который создаст только zip-файл.Я не знаю, как добиться zip-шифрования, используя ZipArchive() метод

. Вам может понадобиться использовать setEncryptionName() метод, чтобы достичь этого

Или перейдите на http://php.net/manual/en/ziparchive.setencryptionname.php

0 голосов
/ 25 февраля 2019

Попробуйте следующий код

<?php 
$zip = new ZipArchive(); $zipFile = __DIR__ . '/output.zip'; if (file_exists($zipFile)) { unlink($zipFile); } $zipStatus = $zip->open($zipFile, ZipArchive::CREATE); if ($zipStatus !== true) { throw new RuntimeException(sprintf('Failed to create zip archive. (Status code: %s)', $zipStatus)); } $password = 'top-secret'; if (!$zip->setPassword($password)) { throw new RuntimeException('Set password failed'); } // compress file $fileName = __DIR__ . '/test.pdf'; $baseName = basename($fileName); if (!$zip->addFile($fileName, $baseName)) { throw new RuntimeException(sprintf('Add file failed: %s', $fileName)); } // encrypt the file with AES-256 if (!$zip->setEncryptionName($baseName, ZipArchive::EM_AES_256)) { throw new RuntimeException(sprintf('Set encryption failed: %s', $baseName)); } $zip->close();
<?php>
...