How do I create a file from submitted raw base64 data? - php

I am trying to reconstruct a WAV/MP3 file from raw bases64 encoded data submitted in in a form. I understand th the steps should be something like:
1. Create new file
2. use file_put_content onto the new file with the decoded data
Is this correct? And what is the best/easiest way to do so?

Related

How to upload filepond image to MySql with PHP?

I have included the javascript in my project and FilePond works great on the FrontEnd, as you can see below:
Here is the code in my HTML:
When I submit the form this is what I get for filepond:
Code:
https://snipsave.com/user/viktorgavrilovic/snippet/TpgWPYaBBmWe1N44YO/
Now, how can I save the image to a folder, let's say: C:/temp/?
I know that I have to decode because the data is base64 encoded, here is my PHP so far, with decoded format:
$filepond = $_POST["filepond"];
$json_decoded = json_decode($filepond[0], true);
var_dump($json_decoded);
and this is what I get from the decoded format:
Code:
https://snipsave.com/user/viktorgavrilovic/snippet/u3Th8eqrzvmq6IAWAI/
Could you please tell me what should I do next in order to save the image in a folder and in a MySql DB? Thank you very much!

WinINET and PHP php://input POST read

I have a weird problem. I want to upload some data with WinInet to a PHP script.
When I upload the data at once with HttpSendRequest(), then PHP reads the uploaded data correctly, e.g.
$entityBody = file_get_contents('php://input');
When I upload the data in parts with HttpSendRequestEx() and InternetWriteFile() , then the same data is uploaded, but PHP fails to read the input (empty).
What could be wrong?
Is the PHP script "called" before the entire data is uploaded?
If so, how do I get the data?
Found it, Content-Length header was missing.

How to send base64 decoded data through ajax to php file

I want to send base64 decoded data to php file from ajax, but my half of the data get truncated, not able to send entire data through ajax to php file.
I am sending this: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAJACAYAAABlmtk2AAAgAElEQ…/Hv5‌​9f3b//PQ+Q/3vcf35r/vmLQP0RPc/m74Zy4dP//wBHqel8UTBFDwAAAABJRU5ErkJggg==
and converting the base64 image to normal image like jpg
Any Help ?
Just a guess. Don't hurt me Stackoverflow gods. :-) Use JSON, not urlencoding. Make an object literal and then put your data inside. Send the data your PHP file and use json_decode.
var image {image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAJACAYAAABlmtk2AAAgAElEQ…/Hv5‌​9f3b//PQ+Q/3vcf35r/vmLQP0RPc/m74Zy4dP//wBHqel8UTBFDwAAAABJRU5ErkJggg=="};

Create file from JFIF data

I have a dump of our LDAP database, and i'm attempting to extract all images from it using PHP. The images seem to be stored in JFIF format (at least, according to https://www.rfc-editor.org/rfc/rfc2798#page-5). However, i can't figure out how to create a JPEG file from this; I attempted file_put_contents to dump everything in name.jpeg, imagecreatefromstring's output to imagejpeg and some variations on those. However, either I'm not using them correctly, or I'm just attempting this wrong alltogether.
So the question:
Here's a small part of the field:
jpegPhoto:: /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2Mi4wICh1c2lu
ZyBJSkcgSlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCww
ZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMi
EcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAh
QBkAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF
BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU
2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpq
eoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBA
QEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEH
YXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFl
aY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8
jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8Kihad+OB3JrQhtI7aHzG
bdKTwMdBVKSGWFVc7lDZAPTOOv6H9aTzJlKMGO4gEH26VEk31Jaua8MkSpIHk3dSkWw854J/wDrUtzb
uCTuYkZDZH5VW06AMwIZss/DZweo5H51ptKzM6SYJGAGIwSMfr0rnk+WWhk9GYzR+Y4AJUgd/wDP0qN
2JVDjnOM5zjGP6VoXVsUl+Rcbjk4qg8Xlz5429Qf6VtGSaNYu6G4U5U9fX3qOJC7bTzn0qY5HDYwe9M
CxhnBYnP3QO9WO5s6aJmiZWUtDyN+/P4dfxrNu0PmH50ZckEgd+P8AGpYbkwxBInOxnVmU9Diku49jj
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
The data is base64 encoded, decode it first and then save it to a file. See http://www.php.net/manual/en/function.base64-decode.php

Outputting an image from the same PHP file which also receives & sends JSON

Ok, I'm hoping I can explain my situation rather than pasting lines and lines of code.
Currently, JSON sends positional info to my PHP file which in turn uses this data to generate an image, saves it and returns the filename via JSON back to browser. Javascript then refreshes the image on screen.
This all works fine at the moment, but I am wanting to optimise the process and look at the possibility of outputting the image file straight after it's created then save afterwards.
My ideal solution would be something like:
header('Content-Type: image/gif');
echo $this->canvas;
// Save user file
$this->canvas->writeImage( $this->userFile = 'user_img.gif' );
$this->canvas->destroy();
// encode everything and send to browser
echo json_encode(array('misc data back to the browser'));
(I still need to send data back to browser via JSON)
And in my HTML I would have the image laid out like this:
<img src='json-processing-script.php' />
But as usual nothing is ever that simple, so I'd like to hear if anyone can make any pointers.
In your example, the json would be added to the gif, messing up your image. If you want to return these two completely different things from your php script, you would have to encode the image, add it to the json and extract it in the javascript to get the source of your image.
See for example this question.

Categories