所以,我寫了一個小的網絡服務器。首先,我試圖只發送文本,但現在我也試圖發送圖片。 (或HTML的網頁,其中包含圖片)網絡服務器發送圖片通過HTTP
這是我已經試過:
if ((Path.GetExtension(filename).ToLower() == "jpg") || (Path.GetExtension(filename).ToLower() == "png") || (Path.GetExtension(filename).ToLower() == "gif"))
{
Image image = Image.FromFile(filename);
MemoryStream ms = new MemoryStream();
image.Save(ms, image.RawFormat);
responseContent = Encoding.Default.GetString(ms.ToArray());
responseheader = "HTTP/1.1 200 OK\r\n" +
"Server: MiniWebServer\r\n" +
"Content-Length: " + responseContent.Length + "\r\n" +
"Content-Language: de\r\n" +
"Connection: close\r\n\r\n";
}
finalResponse = responseheader + responseContent;
return Encoding.ASCII.GetBytes(finalResponse);
所以,我試圖打開HTML文件(包含圖片)的瀏覽器,但它不」 t出現。然後,我試圖在瀏覽器中只打開圖片,但是接着出現一個錯誤,表示圖形無法顯示,因爲它包含錯誤。
嘗試在調用'ms.ToArray()'之前調用'ms.Close()'。因爲文檔中說ToArray在流關閉時工作。 http://msdn.microsoft.com/en-us/library/system.io.memorystream.toarray.aspx – Madushan
謝謝你的提示,但不幸的是它沒有任何區別 – Lola
嗯...可能是因爲最後一行用ASCII編碼所有東西,你的圖像現在已經損壞了? 嘗試獲取ASCII字節的頭部,但不是'responseContent'並將兩個數組合併成一個較大的數組.. – Madushan