首页 新闻 会员 周边

ashx中实现下载图片的方法?

0
悬赏园豆:10 [已解决问题] 解决于 2009-10-19 16:42

我是这样写的:

 public void ProcessRequest(HttpContext context)
    {
        if ((context.Request.QueryString["t"] != null) && (context.Request.QueryString["path"] != null))
        {
            context.Response.ContentType = GetMimeType(context.Request.QueryString["t"]);
            context.Response.Cache.SetCacheability(HttpCacheability.Public);
            context.Response.BufferOutput = false;
            context.Response.WriteFile("uppic\\" + context.Request.QueryString["path"]);
        }

}

 

这样直接把图片显示在浏览器中了,我需要是直接提示用户另存图片。

红尘中迷茫的主页 红尘中迷茫 | 初学一级 | 园豆:60
提问于:2009-10-19 16:05
< >
分享
最佳答案
1

试一下用流来实现

FileStream fs = new FileStream(strFilePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();

收获园豆:10
风浪 | 老鸟四级 |园豆:2996 | 2009-10-19 16:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册