2009-02-25 20 views
0

Visual Studio 2008開発Webサーバーを使用して多数のJavaScriptと画像を持つASP.NET Webサイトをデバッグしています。VS Builtin Webサーバーが画像をオクテットストリームとして送信する

多くのスクリプトの1つは、<img>タグをオンザフライで作成し、それに適切なsrc属性を指定します。しかし、画像は一切読み込まれず、代わりにFirefox、IE、Operaに代替テキストが表示されます。さらに掘り

は、私は、画像リンクのいずれかをコピーして、Firefoxのアドレスバーに貼り付け、これがライブヘッダーウィンドウに来るものです:

GET /images/nav/zoomin.png HTTP/1.1 
Host: localhost:7777 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729) 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 

HTTP/1.x 200 OK 
Server: ASP.NET Development Server/9.0.0.0 
Date: Wed, 25 Feb 2009 16:59:23 GMT 
X-AspNet-Version: 2.0.50727 
Cache-Control: private 
Content-Type: application/octet-stream 
Content-Length: 292 
Connection: Close 

問題の一部が何らかの形でContent-Typeヘッダーです「application/octet-stream」に設定すると、通常は<img>タグ内に表示される代わりにダウンロード操作が強制されます。

私はそれがちょうどうまく動作する別のアプリケーションからそのままコピーされているコードであるため、問題のjavascriptではないことを確信しています。

私はどこかで何かが誤って構成されている可能性があります。

var zin = document.createElement("img"); 
zin = $Img.Png(zin, Settings.ImageHost + "zoomin.png"); 
zin.style.top = (this.y + zoomPaddingY) + "px"; 
zin.style.left = (this.x + zoomPaddingX) + "px"; 
zin.style.position = "absolute"; 
$Img.Swap(zin, Settings.ImageHost + "zoomin.png", Settings.ImageHost + "zoomin_active.png"); 
zin.alt = zin.title = "zoom in"; 
zin.style.cursor = this.hand; 
$Evt.addListener(zin, "click", this.zoomIn, this, true); 

// long long scroll ... 

controlDiv.appendChild(zin); 

$Img.Png一部が他のPNG画像のために正常に動作しているので、それが問題の原因ではありません。しかし、私はそうここにHTMLタグを作成するコードです、間違っている可能性があります。

どうしたのですか?

ありがとうございました!

それはすでにここ真夜中だ...と私はまだ、この小さなアプリケーションに取り組んでいます...

答えて

1

あなたは、画像をレンダリングするGenericHandlerを使用していますか?

これは簡単な選択です。

例:

public class RenderImage : IHttpHandler, IReadOnlySessionState 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
    context.Response.ContentType = "image/png"; 
    context.Response.Clear(); 

    // TODO: Write image data 
    Bitmap bitmap = ... 

    bitmap.Save(Response.OutputStream,ImageFormat.Png); 

    context.Response.End(); 
    } 

    public bool IsReusable { get { return false; } } 
} 
関連する問題