我有一个ashx处理上传的图片生成缩略图并输出显示,在前台img url绑定了handler.ashx来显示缩略图,但是我不想用context.Response.BinaryWrite输出,我想前台绑定的是一幅.jpg后缀的图片,应该怎样做?

解决方案 »

  1.   

    在前台img标签src添加上ashx处理程序url
      

  2.   

    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    return ms.ToArray();
      

  3.   

    缩略图是文件的话,你可以用Response.transmitfile,如果是Image对像,可以用Images.save(Response.outputstrem)
      

  4.   

    在数据表中,有一个字段是存储图片二进制数据,还有一个字段是存储一个唯一文件名的字段。
    上传时,我们需要把图片存入数据表中,还是把产生的唯一的文件存入。图片上传(只存入数据表)完毕,现写一个事件,把数据表的图片存入站点指定一个目录中。程序显示图片时,均是显示文件夹的图片。
    有时间参考这个案例:http://www.cnblogs.com/insus/p/3291322.html
    所有图片是存在数据库,当有图片更新时,还要执行一个生成的事件,是重新把数据有的二进制图片生至某一目录中。
      

  5.   

    HttpResponse Response = context.Response;
                Response.ClearContent();
                Response.ContentType = "image/jpeg";
                System.Drawing.Image img;//填充img
                img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                img.Dispose();
    如果你想用jpg,直接上传的图片存下来啊,然后用jpg
      

  6.   

    这样你就不需要ashx了,直接在页面中将处理的图片保存成jpg,修改image的链接即可。
    比较麻烦的是如何清理使用过的图片。
      

  7.   

    我就是觉得先上传,后提取图片处理然后再覆盖比较麻烦。所以用ashx处理再二进制输出比较好,但是img url绑定的ashx又不是图片。想在ashx输出的图片上截图就麻烦了。
      

  8.   

    img url绑定ashx输出的缩略图很不方便二次处理,难道只有先把图片上传到服务器,然后再提取缩放,再覆盖原图?想在ashx图上做截图很难,system.drawing只认图片格式,不认ashx这种输出的图,所以现在ashx基础上截图不太可能。
    上传图片、缩放,前台显示并截图保存,谁有一个比较好的思路。
      

  9.   

    Refer this:
    http://www.cnblogs.com/insus/articles/2060601.html