如何让点击超链接显示图片变成下载链接?

 

 

 

 

 

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");
        }
 
 

 
 
 

转载于:https://www.cnblogs.com/newbies/archive/2013/01/17/Fly_IntheSky.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值