实现文件下载功能!!急!!!!!!兄弟就剩这些分了!!!!!
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.Configuration;
using System.Data.SqlClient;
using System.IO;
namespace ProjectManage.Option
{
/// <summary>
/// CompanyFile 的摘要说明。
/// </summary>
public class CompanyFile : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dglink;
protected System.Web.UI.WebControls.Label Label4;
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
if(Session["ProjectName"]!=null)
{
string pname=Session["ProjectName"].ToString();
string app=ConfigurationSettings.AppSettings["Conn"];
SqlConnection conn=new SqlConnection(app);
string str="select Title,CheckFileDate,FileAddress,DDID from DocdispatchBase where Status=3 and DDID in (select DDID from DocDispatchSend where SendName='" + pname + "') order by CheckFileDate desc";
SqlDataAdapter adpter=new SqlDataAdapter(str,conn);
DataSet myDs=new DataSet();
conn.Open();
adpter.Fill(myDs,"DocDispatchBase");
conn.Close();
dglink.DataSource=myDs;
dglink.DataBind();
Session["myDs"]=myDs;
}
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dglink.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dglink_ItemCommand);
this.dglink.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dglink_PageIndexChanged);
this.dglink.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dglink_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void dglink_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
try
{
if(e.Item.ItemType== ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((WebControl)e.Item.Cells[2].Controls[0]).CssClass="buttonClass";
((WebControl)e.Item.Cells[2].Controls[0]).Width=60;
}
}
catch(ArgumentOutOfRangeException ae)
{
Session["message"]=ae.Source+ae.Message;
Response.Redirect("VisitError.aspx");
}
}
private void dglink_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dglink.SelectedIndex=-1;
dglink.CurrentPageIndex=e.NewPageIndex;
dglink.DataSource=(DataSet)Session["myDs"];
dglink.DataBind();
}
private void dglink_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="select")
{
String URL = @"C:\Inetpub\ftproot\little-mis\littleoa\Document\DocDispatch\";
//string URL=@"\\LITTLE-YHX\c$\Inetpub\ftproot\little-mis\littleoa\Document\DocDispatch\";
//String URL=@"ftp://192.168.0.201/little-mis/littleoa/Document/DocDispatch/";
// string URL=@"\\LITTLE-YHX\H:\Inetpub\ftproot\little-mis\littleoa\Document\DocDispatch\";
string filename=e.Item.Cells[3].Text;
string fileurl=URL+filename;
System.IO.FileInfo file=new FileInfo(fileurl);
Response.Clear();
Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(filename));
Response.AddHeader("Content-Length",file.Length.ToString());
Response.ContentType="text/html";
Response.WriteFile(file.FullName);
Response.End();
}
}
}
}
以上是我的代码,要实现的功能是在WEB页上下载文件。但文件不在WEB服务器上,而是局域网内的一台数据库服务器内。
WEB服务器是WIN2003数据服务器是WIN2000SERVER
用:String URL=@"ftp://192.168.0.201/little-mis/littleoa/Document/DocDispatch/";提示错误说不支持给定的路径格式,
当WEB页要下载文件的时候是访问局域网内的数据库服务器内的一个指定目录,需要一个身份验证。大家帮帮我,该怎么解决这个问题。