上传图片到Chevereto网站C#

时间:2014-11-21 00:31:47

标签: c# post image-uploading

我的一位朋友试图将Windows窗体应用程序上的图像上传到一个chevereto网站,使用chevereto API并尝试获取链接(来自网站的回复),但它并没有真正起作用......

API:Chevereto API

更新:已添加代码

 static class Upload
{
    string apiKey = "DEFAULT_API_KEY";
    public string UploadImage(Image image)
    {
        WebClient webClient = new WebClient();

        webClient.Headers.Add("key", apiKey);
        webClient.Headers.Add("format", "txt");

        System.Collections.Specialized.NameValueCollection Keys =
            new System.Collections.Specialized.NameValueCollection();

        try
        {
            string ht = "http://";
            Keys.Add("image", ImageToBase64(image, ImageFormat.Bmp));
            byte[] responseArray = webClient.UploadValues(ht + "mysite.com/api/1/upload/", Keys);
            string result = Encoding.ASCII.GetString(responseArray);

            return result;
        }
        catch (Exception e)
        {
            InternalConsole.LogError("Cannot upload image, error on next line: ");
            InternalConsole.Log(e.Message);
            return "none";
        }
    }

    public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
    {
        using (MemoryStream ms = new MemoryStream())
        {
            // Convert Image to byte[]
            image.Save(ms, format);
            byte[] imageBytes = ms.ToArray();

            // Convert byte[] to Base64 String
            string base64String = Convert.ToBase64String(imageBytes);
            return base64String;
        }
    }
}

有人能告诉我它是如何完成的吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

没关系,我的朋友已经解决了这个问题。

他使用WebRequest发送和接收数据。 他还说,不要忘记转义base64(+,=,/)的字符串,否则api将无法正确接受并返回无效的base64字符串。

非常感谢。