Well, since this is NetherGames. We save player skins into our DB and use a render software API. So we can provide this for offline players too.
You can parse the player's data file (players/username.dat), get the skin bytes and convert it to a png skin. That's the best way I think — you won't be double saving skindata.
Maybe this thread can help you: https://forums.pmmp.io/threads/why-base64-encode-is-different-on-pocketmine-and-php-website.4919/
Is there a limit to the URL size? If the URL can be large enough, we could just send a link like this: http://example.com/base64-echo?mime...SARNFZrBAKLhCOAAAB1YThAR2G6YAAAAASUVORK5CYII= which should decode the base64 and return an image/png like this: Then we don't have to spend the trouble sending the files around.