我想实现邮件系统里面的附件上传哪种形式,就是选一个添加一次,最后一起提交,而不是动态的添加HtmlInput,大家谁有办法

解决方案 »

  1.   


    你多拉几个HtmlInput就是了或者动态生成HtmlInput  比如你选择了一个。。就动态再生成一个#region 文件上传
    /// <summary>
    /// 文件上传
    /// </summary>
    /// <param name="path">路径</param>
    /// <returns>返回 TRUE FALSE</returns>
    private string SaveFiles(string path)
    {
    ///'遍历File表单元素
    HttpFileCollection files  = HttpContext.Current.Request.Files;
    try
    {
    for(int iFile = 0; iFile < files.Count; iFile++)
    {
    HttpPostedFile postedFile = files[iFile];
    string fileExtension;
    fileName = System.IO.Path.GetFileName(postedFile.FileName);
    if (fileName != "")
    {
    fileExtension = System.IO.Path.GetExtension(fileName);
    if(File.Exists(path+"\\"+fileName))
    {
    postedFile.SaveAs(path+"\\(新)"+ fileName);
    }
    else
    {
    postedFile.SaveAs(path+"\\"+ fileName);
    }
    }
    }
    return string.Empty;
    }
    catch(Exception ex)
    {
    return ex.Message;
    }
    } #endregion
      

  2.   

    我已经说了,不要动态生成的HtmlInput
      

  3.   

    我用了static能实现,可是static不安全,所以想有什么办法能把选择的文件保存在客户端的页面里而postback的时候不会消失
      

  4.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=58EA3515-36F2-4FD9-AC89-EAF49F59816C
      

  5.   

    是个控件保值问题?  意思是不是选择1个文件之后,选择第2个前面的就会清空?如果是,就使用ViewState,将"前面"的各各文件名全放在ViewState里,例如:ViewState["file1"]  ViewState["file2"],在发送时,从ViewState中再读出来就好了.
      

  6.   

    不用动态生成HtmlInput的话,我觉得可以用一种变通的办法,每上传一次就将文件保存到服务器上,并生成上传后的文件列表,然后用户点击“发送”的时候你再从服务器上把所有附件提取出来呀!这应该是个蠢办法啦,哈哈
      

  7.   

    我现在做的是把上传的文件存在一个hashtable里面,为了防止postback以后数据丢失我把它放在一个session里面了,但是这样特别占用内存,如果是viewstate的话,又不能把httppostedfile直接存在里面,现在就是想找一种既能够不占用服务器资源又能够保存用户输入的文件的办法
      

  8.   

    有没有什么办法让某个session立即失效并且释放内存的,或者说如何释放一个声明的变量所占的内存