현재 사용자가 자신의 라이브러리에서 사진을 선택하거나 사진을 찍어서 Imgur에 업로드하는 것과 관련된 앱을 제작하려고합니다. Windows Forms 응용 프로그램 용 C# Imgur 클라이언트를 이미 구축했지만 불행하게도 Windows Phone으로 이식하는 것은 큰 재앙이었습니다. 여기 Windows Phone에서 Imgur로 이미지 업로드하기
내가 사용하고있는 코드입니다 :public void UploadImageAsync(Stream PhotoStream)
{
try
{
WebClient w = new WebClient();
w.Headers["Content-type"] = "application/x-www-form-urlencoded";
string data = "key="+PublicKey+
"&_fake_status=200"+
"&type=base64"+
"&image="+PhotoStreamToBase64(PhotoStream);
w.UploadStringAsync(new Uri("http://api.imgur.com/2/upload", UriKind.Absolute), "POST", data);
}
catch (Exception ex)
{
}
}
string PhotoStreamToBase64(Stream PhotoStream)
{
MemoryStream memoryStream = new MemoryStream();
PhotoStream.CopyTo(memoryStream);
byte[] result = memoryStream.ToArray();
return System.Convert.ToBase64String(result);
}
무엇 흥미 (좌절) 모든 것이 잘 작동되는 것처럼 나타납니다, 그리고 업로드가 완료된 후 나는 성공적인 응답을받을 것입니다 . 그러나 업로드 한 후 이미지를 보려고하면 결과는 http://i.imgur.com/NWY0R.jpg입니다.
이것은 어떻게 든 이미지 스트림이 바이트 배열로 잘못 변환되거나 기본 64 문자열로 잘못 변환되었다고 생각하게합니다. 어쨌든, 나는 그것을 작동시키지 못하고 나는 완전히 손해를보고 있습니다. 아무나 아이디어있어? 어떤 도움이라도 대단히 감사하겠습니다.
(http://api.imgur.com/examples#uploading_cs), 오른쪽 : 여기에 지금 기능 PhotoStreamToBase64 방법이다? 동일한 논리를 사용하고 있고 코드가 작동하지 않는 경우 이미지를 여는 방식이 잘못되었거나 이미지가 손상되었을 가능성이 큽니다. – qJake
아, 예, 원래 클라이언트를 만들 때 예제를 알았습니다. 나는 그 예에서 그들의 부호화 논리를 따랐고 매력처럼 작동했기 때문에 올바른 방향으로 나를 밀어 주심에 감사드립니다! –