我在实现把DATAGRID中内容导入EXCEL的功能时用了别人的代码,代码如下问题:
我的WEB服务器和FTP是同一个IP,程序在局域网运行没有问题,但放在WEB上运行就出错.我怀疑是权限原因,于是我又申请了一个WEB空间,WEB服务器和FTP也是同一个IP,程序运行又没问题了.难道是因为原来的服务器限制高些的原因吗?我需要在程序中连接FTP才可以吗?如果是,上面的代码又该怎么改,假设用户名是wwwooo,密码是123456.学.NET不久,望达人不吝赐教.    private void Export(System.Web.UI.WebControls.DataGrid dg,string fileName,string typeName)
    {
        System.Web.HttpResponse httpResponse = Page.Response;
        httpResponse.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)); 
        httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
        httpResponse.ContentType = typeName;
        System.IO.StringWriter  tw = new System.IO.StringWriter() ;
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
        dg.RenderControl(hw);
        string filePath = Server.MapPath("~/downfile/")+fileName;
        System.IO.StreamWriter sw = System.IO.File.CreateText(filePath);
        sw.Write(tw.ToString());
        sw.Close();
        
        DownFile(httpResponse,fileName,filePath);
        httpResponse.End();
    }    private  bool DownFile(System.Web.HttpResponse Response,string fileName,string fullPath)
    {
        try
        {
            Response.ContentType = "application/octet-stream";         
            Response.AppendHeader("Content-Disposition","attachment;filename=" + 
            HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) + ";charset=GB2312");
            System.IO.FileStream fs= System.IO.File.OpenRead(fullPath);
            long fLen=fs.Length;
            int size=102400;//每100K同时下载数据 
            byte[] readData = new byte[size];//指定缓冲区的大小 
            if(size>fLen)size=Convert.ToInt32(fLen);
            long fPos=0;
            bool isEnd=false;
            while (!isEnd) 
            { 
                if((fPos+size)>fLen)
                {
                    size=Convert.ToInt32(fLen-fPos);
                    readData = new byte[size];
                    isEnd=true;
                }
                fs.Read(readData, 0, size);//读入一个压缩块 
                Response.BinaryWrite(readData);
                fPos+=size;
            } 
            fs.Close(); 
            System.IO.File.Delete(fullPath);
            return true;
        }
        catch
        {
            return false;
        }
    }    protected void btnWord_Click(object sender, System.EventArgs e)
    {
            Export(DataGrid1, "学生信息.doc","application/ms-word");
    }    protected void btnExcel_Click(object sender, System.EventArgs e)
    {
            Export(DataGrid1, "学生信息.xls","application/ms-excel");
    }