1
私は小さなプロジェクトにカヤックサーバを使用しています。 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));
}
}
****
}
このコードが実行される:ここでそれは素晴らしい作品が、私はPNGやJPG画像のすべてのコードの
初の要求を持っているとき、私は問題を抱えています。私は画像の実際の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
は、私はレスポンスヘッダを構築していたときに、私は何かが欠けアムていますか?事前希望で
私は画像を適切に戻すことはできません。..
おかげで説明と明確です。