asp.net 直接 从数据库 下载 文件
当我们想要从网上下载文件时,通常的做法是在服务器上的某个目录下生成一个文件。
protected void DownloadFile(string filename)
{
string saveFileName = "test.xls";
int intStart = filename.LastIndexOf("\\") + 1;
saveFileName = filename.Substring(intStart, filename.Length - intStart);
Response.Clear();
Response.Charset = "utf-8";
Response.Buffer = true;
this.EnableViewState = false;
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + saveFileName);
Response.WriteFile(filename);
Response.Flush();
Response.Close();
Response.End();
}
但会存在这样的情况,直接从数据库中下载图片。
其实原理很简单。就是用MemoryStream代替FileStream。有一点需要注意就是http头的格式要设置正确。 byte[] pic = //从数据库返回的图片
MemoryStream ms = new MemoryStream(pic);
System.Drawing.Image img = null;
Graphics g =null;
try
{
img = new Bitmap(new MemoryStream(pic));
g= Graphics.fromImage(img);
Font objfont = new Font("Verdana", 12, FontStyle.Bold);
Brush objbrush = Brushes.Red;
Rectangle rect = new Rectangle(150, 550, 200, 50);
g.DrawString("添加文字", objfont, objbrush, rect);
img.Save(ms, ImageFormat.Bmp);
}
catch { }
finally
{
if (img != null) img.Dispose();
if (g!= null) g.Dispose();
}
byte[] newbmp = ms.ToArray();
ms.Close();
ms = new MemoryStream(newbmp);
Response.Clear();
Response.AddHeader("Content-type", "binary/octet-stream");
Response.AddHeader("Content-Length", pic.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename="+pic.Length.ToString()+".bmp; size=" + pic.Length.ToString());
相关文档:
private void WriteXML()
{
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?> ");
sb.Append(" <!-- ");
sb.Append("<content>");
sb.Append(& ......
一、认识Web.config文件
Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的
Web.config文件,包括默认的配置设置 ......
第一步 掌握一门。NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!
第二步 对。NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习。NET Framework。ASP.NET是建构在。NET Framework之 ......
本系列文章基于ASP.NET MVC Preview5.
view在MVC模式中与用户进行最直接的接触,它负责数据的呈现。这里要注意一点就是,view只是负责数据的呈现,所以我们应该要尽量让
view中不涉及业务逻辑的处理。
我们来添加一个Blog首页的view。在安装了ASP.NET MVC后,我们在添加新项目的时候可以看到有MVC的view模板:
......