修改http報文頭讓顯示映像變下載

來源:互聯網
上載者:User

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace httpHandler{    /// <summary>    /// xiazai1 的摘要說明    /// </summary>    public class xiazai1 : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "image/jpeg";            //context.Response.AddHeader("content-disposition","attachment:filename=haha.jpg");            //或者使用下面的asp.net方式添加報文頭,AddHeader是一個老的asp相容的方法            context.Response.AppendHeader("content-disposition", "attachment:filename=haha.jpg");            context.Response.WriteFile("content/DSC06942.JPG");        }        public bool IsReusable        {            get            {                return false;            }        }    }}

vs2010在項目裡面建立一個一般處理常式就可以得到上面的結果,如果沒有其中的AppendHeader,會直接在瀏覽器上沒有提示的顯示出這張圖片.不過有點鬱悶的是調整發現這個檔案名稱老是不對,顯示的是xiazai1.jpg,準確的應該是haha.jpg,和老師做的一樣,結果卻不同,和Web伺服器有關係?還是瀏覽器?

查了一下資料,原來是打錯了一個字元,在attachment後面應該跟上分號,而不是冒號!

如果想將haha.jpg改成中文的,需要對中文做一下編碼處理,比如

public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "image/JPEG";            //context.Response.AddHeader("content-disposition","attachment:filename=haha.jpg");            //或者使用下面的asp.net方式添加報文頭,AddHeader是一個老的asp相容的方法            string filename = HttpUtility.UrlEncode("哈哈.jpg");            context.Response.AddHeader("Content-Disposition", "attachment;filename="+filename);            context.Response.WriteFile("content/DSC06942.JPG");        }

這樣就可以將伺服器的一個圖片或者其它檔案改個名字讓使用者來下載了!一切盡在掌握中

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.