using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace WebPortal
{
/// <summary>
/// UpLoad 的摘要说明。
/// 实现多文件上传
/// </summary>
public class Upload : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button UploadButton;
protected System.Web.UI.HtmlControls.HtmlGenericControl MyFile;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label strStatus; private void Page_Load(object sender, System.EventArgs e)
{
/// 在此处放置用户代码以初始化页面
if (this.IsPostBack) this.SaveImages();
} private Boolean SaveImages()
{
///'遍历File表单元素
HttpFileCollection files  = HttpContext.Current.Request.Files; /// '状态信息
System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
strMsg.Append("上传的文件分别是:<hr color=red>");
try
{
for(int iFile = 0; iFile < files.Count; iFile++)
{
///'检查文件扩展名字
HttpPostedFile postedFile = files[iFile];
string fileName, fileExtension;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName);
strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>");
strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>");
strMsg.Append("上传文件的文件名:" + fileName + "<br>");
strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>");
///'可根据扩展名字的不同保存到不同的文件夹
///注意:可能要修改你的文件夹的匿名写入权限。
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName);
}
}
strStatus.Text = strMsg.ToString();
return true;
}
catch(System.Exception Ex)
{
strStatus.Text = Ex.Message;
return false;
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
} /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.UploadButton.Click += new System.EventHandler(this.UploadButton_Click);
this.ID = "Upload";
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
Response.Redirect("002.aspx");
}
}
}

解决方案 »

  1.   

    是要这个吗?
    ASP.NET直接下载一个文件,而不是在IE中打开它 
    http://blog.joycode.com/uestc95/archive/2004/05/25/22494.aspx
      

  2.   

    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition", "attachment;FileName="+YourFileName);
    Response.BinaryWrite((byte[])YourFileData.Rows[0]["AttachmentContent"]);
    Response.End();
    楼上的你说的这段代码吗?
    本人是初学者,能给个完整的吗?就象我贴的一样 谢谢
      

  3.   

    这个吗
    http://dotnet.aspx.cc/ShowDetail.aspx?id=EY1XLDYV-PIDF-43LO-1WFL-FMY5ALE1F635
      

  4.   

    高手进来指点一下
    或者给个完整的程序也可以,只要能实现http下载就行.
    请给个完整的
      

  5.   

    <%@ Page language="c#" Codebehind="ShowFile.aspx.cs" AutoEventWireup="false" Inherits="InfoResMng.SubModule.AttchMng.showFileForm" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <html>
    <head>
    <title>ShowFile</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </head>
    <body MS_POSITIONING="GridLayout">
    <form id="showFileForm" method="post" runat="server">
    </form>
    </body>
    </html>using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Data.SqlClient;
    using InfoResMng.Components;namespace InfoResMng.SubModule.AttchMng
    {
    /// <summary>
    /// ShowFile 的摘要说明。
    /// </summary>
    public class showFileForm : System.Web.UI.Page
    {
    //private static long AttchID=0; //附件信息ID
    private  long AttchID=0; //附件信息ID
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面 if(Request.QueryString["AttchID"]!=null)
    {

    AttchID = Int32.Parse(Request.QueryString["AttchID"].ToString());
    //得到附件详细信息
    SqlDataReader dr;
    InfoResMng.Components.Attchment Attch = new InfoResMng.Components.Attchment(); dr = Attch.GetAttchmentInfo(AttchID);
    if(dr.Read())
    {
                        //DataTable dt =Tools.ConvertDataReaderToDataTable(dr);
                        // dr.
    /*
    Response.Clear();
    Response.AddHeader("Content-Type",dr["AttchType"].ToString());
    Response.BinaryWrite((byte[])dr["AttchData"]);
       */

    Response.ContentType = "application/x-msdownload";
    Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(dr["AttchName"].ToString().Trim(),System.Text.Encoding.UTF8));// + ""+ dr["AttchType"].ToString().Trim() +"");
    Response.Charset = "utf-8";
    Response.BinaryWrite((byte[])dr["AttchData"]);
    Response.Flush();
    Response.End();
    RegisterStartupScript("alert", "<script language='javascript'> alert('附件成功下载!')</script>");
           
    /*
    System.IO.FileInfo file = new System.IO.FileInfo(dr["AttchName"].ToString());
    Response.Clear();
    Response.AddHeader("Content-Type", "application/octet-stream");
    Response.Charset = "utf-8";
    Response.AddHeader("Content-Disposition", "attachment;filename="+System.Web.HttpUtility.UrlEncode(file.Name,System.Text.Encoding.UTF8));
    Response.AddHeader("Content-Length", dr["AttchSize"].ToString());
    Response.WriteFile(file.FullName); 
    Response.Flush(); 
    Response.Clear();
    Response.End();
    */
         }
    dr.Close(); } } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.ID = "showFileForm";
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }
      

  6.   

    你到如下地址去看一下,里面有完整的上传,下载的代码,同时还有完整的关于datagrid控件的使用示例.
    http://www.cnblogs.com/hchxxzx/articles/167666.html
      

  7.   

    D:\Inetpub\wwwroot\WebApplication8\UploadFile.aspx.cs(13): 类型或命名空间名称“Components”在类或命名空间“InfoResMng”中不存在(是否缺少程序集引用?)
    楼上的程序运行时提示的错误
      

  8.   

    刚刚看了一下博客园,这个写的比我的好!
    http://www.cnblogs.com/supercode/archive/2005/06/13/173529.html