# wpsynchro/trunk/src/API/GetFiles.php

WP Synchro – The Ultimate WordPress Migration Tool, version trunk. 51 lines.

- Page: https://pluginprobe.com/plugins/wpsynchro/trunk/code/src/API/GetFiles.php
- Raw: https://pluginprobe.com/plugins/wpsynchro/trunk/raw/src/API/GetFiles.php
- Modified: 2026-09-04T12:18:00+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/wpsynchro/trunk/code/src/API/GetFiles.php#L10-L20`.

```php
<?php

namespace WPSynchro\API;

use WPSynchro\Transport\RemoteTransport;
use WPSynchro\Transport\ReturnResult;
use WPSynchro\Transport\Transfer;
use WPSynchro\Transport\TransferAccessKey;

/**
 * Class for handling service "getfiles" - Pulling files from remote
 */
class GetFiles extends WPSynchroService
{
    public function service()
    {
        // Get transfer object, so we can get data
        $transfer = new Transfer();
        $transfer->setEncryptionKey(TransferAccessKey::getAccessKey());
        $transfer->populateFromString($this->getRequestBody());
        $body = $transfer->getDataObject();

        // Get data from request
        $files = $body->files;
        $maxsize = $body->max_file_size;

        // Get remote transfer object, to be used for its functions to read files
        $remotetransport = new RemoteTransport();
        $remotetransport->init();
        $remotetransport->setMaxRequestSize($maxsize);

        $filesync_added = [];
        foreach ($files as $file) {
            $more_space = $remotetransport->addFiledata($file);
            $filesync_added[] = $file;

            // If it could not be added, probably due to hitting max size, break off
            if ($more_space === false) {
                break;
            }
        }

        // Return the result
        $returnresult = new ReturnResult();
        $returnresult->init();
        $returnresult->setTransferObject($remotetransport->transfer);
        $returnresult->setDataObject($filesync_added);  // This NEEDS to be after the new transferobject assigment, to make it is added to the new transferobject
        return $returnresult->echoDataFromServiceAndExit();
    }
}

```
