2
votes

I have bitmao instance i convert this instance into base64string and send it to server over php function. Now i am decoding this string and calling imagecreatefromstring but this function is giving 500 internal server error. I want this image to be store into file.

My .net function is as follows:

 Bitmap icon = new Bitmap("C:\\Users\\HP\\Desktop\\mun.ico");

            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            icon.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
            byte[] imageBytes = stream.ToArray();
            // Convert byte[] to Base64 String
            string base64String = Convert.ToBase64String(imageBytes);

            HttpWebRequest m_ObjRequest; //Request which needed to be sent to server
            HttpWebResponse m_ObjResponse; // Response which is sent back from the server to the client

            StreamReader reader = null; // making a stream reader to read the web pageand initialize it to null

            string m_Url = "http://192.168.1.30/muneem/erp/uploadIcon.php"+ "?bitmap=" + base64String; // the url of that web page

            string m_Response = "";
            m_ObjRequest = (HttpWebRequest)WebRequest.Create(m_Url); // creating the url and setting the values
            m_ObjRequest.Method = "GET";
            m_ObjRequest.ContentType = "application/json; charset=utf-8";
            //m_ObjRequest.ContentLength = 500;
            m_ObjRequest.KeepAlive = false;

            m_ObjResponse = (HttpWebResponse)m_ObjRequest.GetResponse(); // getting response from the server
            using (reader = new StreamReader(m_ObjResponse.GetResponseStream())) // using stream reader to read the web page
            {
                m_Response = reader.ReadToEnd();
                reader.Close(); // Close the StreamReader
            }

            m_ObjResponse.Close();
            m_ObjRequest = null;
            m_ObjResponse = null;

My php code to handle this encoded bitmap string is as follows:

$bitmap=$_GET['bitmap']; $data = base64_decode($bitmap);

$im = imagecreatefromstring($data); if ($im !== false) { header('Content-Type: image/png'); imagepng($im); imagedestroy($im); } else { echo 'An error occurred.'; }

encoded bitmap string is as follows:

$bitmap="Qk02BAAAAAAAADYAAAAoAAAAEAAAABAAAAABACAAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPasAP/2rAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9qwA//asAP9L/9v/S//b//asAP/2rAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9qwA/0v/2/9L/9v/S//b/0v/2/9L/9v/S//b//asAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPasAP9L/9v/S//b/0v/2/9L/9v/S//b/0v/2//2rAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPasAP9L/9v/S//b/0v/2/9L/9v/S//b/0v/2/9L/9v/S//b//asAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2rAD/S//b/0v/2/9L/9v/S//b/0v/2/9L/9v/S//b/0v/2//2rAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPasAP9L/9v/S//b/0v/2/9L/9v/S//b/0v/2//2rAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2rAD/S//b/0v/2/9L/9v/S//b/0v/2/9L/9v/9qwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPasAP/2rAD/S//b/0v/2//2rAD/9qwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPasAP/2rAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="

why i am getting this error on imagecreate from string?

1

1 Answers

2
votes

BMP format is not supported by imagecreatefromstring. Allowed formats are: JPEG, PNG, GIF, WBMP, and GD2.