C#으로 작성된 웹 폼 응용 프로그램이 있습니다. 사용자가 이미지와 함께 HTML 양식을 제출 한 후 해당 이미지를 C#으로 작성된 WCF Rest 서비스에 보냅니다. 문제는 웹 서비스에서 이미지가 손상되어 손상된 것입니다.앞으로 게시 된 이미지를 WCF Rest Service에 전달하십시오.
내가 파일을 제대로 인코딩하지 않는다고 생각하지만, 인터넷에서 읽은 후 필자는 실마리를 찾지 못했습니다.
웹 양식 코드 :
protected void Page_Load(object sender, EventArgs e)
{
HttpPostedFile image = Request.Files["imagen"];
string serverResponse = Send("mywebservice/postimage", "POST", Encoding.UTF8.GetBytes(StreamToString(image.InputStream)));
}
편집 (이 방법으로 일)
protected void Page_Load(object sender, EventArgs e)
{
HttpPostedFile image = Request.Files["imagen"];
MemoryStream ms = new MemoryStream();
image.InputStream.CopyTo(ms);
byte[] bytes = ms.ToArray();
string serverResponse = Send("mywebservice/postimage", "POST", bytes);
}
public int Send(string url, string method, byte[] data)
{
string serverResponse = "";
HttpWebRequest newRequest = (HttpWebRequest)WebRequest.Create(url);
newRequest.ContentType = "image/jpeg";
newRequest.Method = method;
newRequest.Timeout = 10000;
if (newRequest.Method == "POST" || newRequest.Method == "PUT")
{
Stream reqStream = newRequest.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
WSMessageEnt wsMessageEnt = new WSMessageEnt();
try
{
HttpWebResponse webResponse;
webResponse = (HttpWebResponse)newRequest.GetResponse();
Stream dataStream = webResponse.GetResponseStream();
serverResponse = new StreamReader(dataStream).ReadToEnd();
}
catch (WebException we)
{
}
return serverResponse;
}
public static string StreamToString(Stream data)
{
StreamReader reader = new StreamReader(data);
string body = reader.ReadToEnd();
reader.Close();
reader.Dispose();
return body;
}
Webservice를 코드 :
[WebInvoke(UriTemplate = "upload-user-image", Method = "POST")]
public Stream UploadUserImage(Stream streamdata)
{
System.Drawing.Image img = System.Drawing.Image.FromStream(streamImagen, true);
// here I get a format error
}
오류 메시지를 제공해 주시겠습니까? – digaomatias
스페인어로되어 있지만 "잘못된 인수/매개 변수"와 같은 내용이 있습니다. –