我想把 所有的代码写在.cs文件里   客户端用一个HTML表单发送,这样ASPX文件里没有任何改动,这样别人永远发现不了这段上传代码
------------------
要上传的时候,只需要再用一个HTML,用表单指向那个aspx文件就实现上传, 对上传代码处理完全放在.cs文件里, 就好比留了个后门

解决方案 »

  1.   

    .ASPX
    <form id="UPExcel" encType="multipart/form-data" method="post" runat="server">
    <input name="btnFile" type="file" id="btnFile" size="20" runat="server">&nbsp;
    <asp:Button ID="subtn" runat="server" Text="Submit"></asp:Button>
    </form>.CS
    private void subtn_Click(object sender, System.EventArgs e)
    {
    if(btnFile.PostedFile.ContentLength < 1)
    {
    Response.Write("<script language='javascript'>alert('請選擇文件!');</script>");
    return;
    }
    string strFiltrate = btnFile.PostedFile.FileName;
    strFiltrate = System.IO.Path.GetExtension(strFiltrate);
    if(strFiltrate.ToLower() !=".xls")

    Response.Write("<script language='javascript'>alert('文件類型隻能是EXCEL!');</script>");
    return;
    }
    string filePath=btnFile.PostedFile.FileName;
    string oldName = filePath.Substring(filePath.LastIndexOf("\\")+1);
    if(!Directory.Exists(Server.MapPath("Upfiles")))//判斷是否有Upfiles目錄﹐如果沒有就創建
    Directory.CreateDirectory(Server.MapPath("Upfiles"));
    string filepath1 = Server.MapPath("Upfiles/"+Path.GetFileName (btnFile.PostedFile.FileName));
    btnFile.PostedFile.SaveAs(filepath1);
    }
      

  2.   

    指定HTML文件的form的enctype="multipart/form-data" 属性
    StringBuilder sb = new StringBuilder();int attCount = 0;
    string filePath = "";
    for(int i=0; i< Request.Files.Count; i++)
    {
    if(Request.Files[i].ContentLength > 0)
    {
    filePath = Request.Files[i].FileName;
    sb.Append("Files" + attCount++ + ": " + filePath + "<br>");
    Request.Files[0].SaveAs(Server.MapPath("./") + filePath.Substring(filePath.LastIndexOf("\\")+1));
    }
    }sb.Insert(0, "you upload " + attCount + " files.<br>");
    Response.Write(sb.ToString());
      

  3.   

    说白了就是用Request.Files[]客户端上载的文件(多部件 MIME 格式)集合
      

  4.   

    哥们,这个不麻烦吧
            Stream fileStream;
            int fileLen;
            string fileUpload;
            string fileContentType;
            string fileExt;
            string name;
            fileStream = fileName.PostedFile.InputStream;
            fileUpload = fileName.PostedFile.FileName;
            fileLen = fileName.PostedFile.ContentLength;
            fileExt = (Path.GetExtension(fileUpload)).ToString().ToLower();
            if (fileExt != ".xls")
            {
                this.Page.RegisterStartupScript("", "<SCRIPT>alert('请选择Excel文件!')</SCRIPT>");
                return;
            }        try
            {
                byte[] fileBinaryData = new byte[fileLen];
                fileContentType = fileName.PostedFile.ContentType;
                fileStream.Read(fileBinaryData, 0, fileLen);            //生成文件名
                DateTime sdate = DateTime.Now;
                string strYear;
                string strMonth;
                string strDay;
                string strMin;
                string strSec;            strYear = sdate.Year.ToString();
                strMonth = sdate.Month.ToString();
                strDay = sdate.Day.ToString();
                strMin = sdate.Minute.ToString();
                strSec = sdate.Second.ToString();            strYear = strYear.PadLeft(4, '0');
                strMonth = strMonth.PadLeft(2, '0');
                strDay = strDay.PadLeft(2, '0');
                strMin = strMin.PadLeft(2, '0');
                strSec = strSec.PadLeft(2, '0');            name = strYear + strMonth + strDay + strMin + strSec;            string strFileSavePath = Server.MapPath("../Excel");
                Stream sw = File.Create(strFileSavePath + "/" + name + ".xls");
                sw.Write(fileBinaryData, 0, fileLen);
                sw.Close();
                string dr = strFileSavePath + "/" + name + ".xls";
                dataShowBind(dr);        }
            catch (Exception error)
            {
                Response.Write(error);
            }
    这是一段上传Excel文件,并绑定到GridView的代码,可以参考一下