node.js — Отправка zip-файла с php-сервера в электронное приложение? Как?

Мне нужно отправить zip-файл с PHP-сервера в приложение Electron, но я все еще не уверен, как это сделать напрямую.

Вот некоторые подходы, которые, я думаю, могут сработать.

План A: сервер запускает событие загрузки электронного приложения через сокетное соединение

  1. PHP сервер отправляет сокет-сообщение в электронное приложение

    function send($msg='', $port=2004, $host='127.0.0.1')
    {
    try {
    
    $sock = fsockopen($host, $port, $errono, $errmsg, 30);
    
    if ($errono != 0 && $errmsg != ''):
    $error_msg = 'Socket Error:  [' . $errono . '] ' . $errmsg;
    error_log($error_msg);
    $error_msg = 'Socket Error:  unsent message is "' . $msg . '"';
    error_log($error_msg);
    
    else:
    
    fputs($sock, $msg);
    $c = fread($sock, 10);
    
    return true;
    endif;
    
    } catch (Exception $e) {
    
    }
    
    return false;
    }
    
  2. Приложение Electron получает сообщение сокета и загружает zip-файл, обращаясь к URL-адресу zip-файла из сообщения сокета.

    downloadItem : (item, iType, basepath, dlErr, dlComplete) =>
    itemKey = null
    itemUrl = null
    
    if item?
    if item.key?
    itemKey = item.key
    if item.url?
    itemUrl = item.url
    
    if downloader? and itemKey? and itemUrl?
    fs = require('fs')
    filePath = basepath + itemKey
    
    try
    fs.unlinkSync(filePath)
    catch e
    console.warn e
    
    downloader.download(
    itemUrl
    iType
    (err=null, data={}) =>
    if err?
    dlErr()
    else
    dlComplete()
    (progress=0) =>
    console.log('PROGRESS', progress)
    =>
    dlErr()
    )
    return item
    

План Б: PHP FTP PUT

  1. PHP сервер отправляет файл напрямую по FTP.

  2. Ниже приведен лишь пример, который я получил от https://shellcreeper.com/move-files-server-to-server-using-simple-php/
    Кажется, работает, но я не уверен.

    /**
    * Transfer (Export) Files Server to Server using PHP FTP
    * @link https://shellcreeper.com/?p=1249
    */
    
    /* Remote File Name and Path */
    $remote_file = 'files.zip';
    
    /* FTP Account (Remote Server) */
    $ftp_host = 'your-ftp-host.com'; /* host */
    $ftp_user_name = 'ftp-username@your-ftp-host.com'; /* username */
    $ftp_user_pass = 'ftppassword'; /* password */
    
    
    /* File and path to send to remote FTP server */
    $local_file = 'files.zip';
    
    /* Connect using basic FTP */
    $connect_it = ftp_connect( $ftp_host );
    
    /* Login to FTP */
    $login_result = ftp_login( $connect_it, $ftp_user_name,    $ftp_user_pass );
    
    /* Send $local_file to FTP */
    if ( ftp_put( $connect_it, $remote_file, $local_file, FTP_BINARY )){
    echo "WOOT! Successfully transfer $local_file\n";
    }else {
    echo "Doh! There was a problem\n";
    }
    
    /* Close the connection */
    ftp_close( $connect_it );
    

Хотя я могу составить план А, я хотел бы рассмотреть вопрос о том, существует ли какой-либо другой лучший подход к моему делу, прежде чем идти дальше.

Мои вопросы:

  1. Любой другой лучший подход?

  2. Что касается плана B, я до сих пор не могу понять, как заставить приложение Electron действовать как удаленный FTP-хост. Возможно ли даже электронное получение файла по FTP?

Любой пример кода, который может помочь, приветствуется. Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector