1
我正在爲一個小項目使用Kayak服務器。它的偉大工程,但我有一個問題,當我有一個PNG或JPG圖像皮艇服務器圖片響應頭
首先把代碼的請求是在這裏:當請求PNG圖像執行
public class RequestDelegate : IHttpRequestDelegate{
*****
public void OnRequest(HttpRequestHead request, IDataProducer requestBody,IHttpResponseDelegate response){
*****
else if (url.EndsWith("png"))
{
String fileName = url.Substring(url.IndexOf(@"\") + 1);
url = url.Substring(url.IndexOf(@"\") + 1);
url = Path.Combine(WebServerUtils.Instance.HtmlURL, url);
using (StreamReader streamReader = new StreamReader(url))
{
String body = streamReader.ReadToEnd();
var responseHeader = WebServerUtils.Instance.CreateResponseHeader(body.Length, "image/png");
responseHeader.Headers.Add("Content-Disposition", "attachment; filename=" + fileName);
response.OnResponse(responseHeader, new BufferedProducer(body));
}
}
****
}
此代碼。這非常簡單,我找到了圖像的真實url路徑,我用流讀取器讀取它。然後,我創建的響應頭..
的代碼
var responseHeader = WebServerUtils.Instance.CreateResponseHeader(body.Length, "image/png");
這裏這部分實施
public HttpResponseHead CreateResponseHeader(int length, String type)
{
var _ResponseHeader = new HttpResponseHead()
{
Status = "200 OK",
Headers = new Dictionary<string, string>(){
{ "Content-Type", type },
{ "Content-Length", length.ToString() },
}
};
return _ResponseHeader;
}
現在這裏的情況是,當我問了圖像的頁面不都是渲染。當我使用Firebug來看看發生了什麼..這裏是錯誤
Image corrupt or truncated: http://localhost:9090/Pedidos/back.png
我是否缺少什麼東西,當我構建響應頭?
我無法正常返回圖像..
在此先感謝,希望與解釋清楚。