none
求个固定附件上传的方法 RRS feed

  • 问题

  • 后台在提交数据有5个固定的上传附件控件,分别对应数据库5个字段,点击确定按钮 提交5个附件到数据库,数据库记录的上传附件名字。。我的问题就是。。我是用笨方法。。在确定按钮里写5个上传附件的代码。感觉这样很死板


    string
    fn; string fn1; string fn2; ......//省略 string sFilePath = ""; string sFilePath1 = ""; string sFilePath2 = ""; ......//省略 string FileName = FilDh.FileName; string FileName1 = FilSms.FileName; string FileName2 = FilCS.FileName; ......//省略 string strExPrentFile = FileName.Substring(FileName.LastIndexOf(".") + 1); string strExPrentFile1 = FileName1.Substring(FileName1.LastIndexOf(".") + 1); string strExPrentFile2 = FileName2.Substring(FileName2.LastIndexOf(".") + 1); string[] AgreeExPrentFile = new string[] { "swf", "gif" }; string[] AgreeExPrentFile1 = new string[] { "doc", "docx", "txt", "pdf" }; string[] AgreeExPrentFile2 = new string[] { "jpg", "bmp", "gif" }; ......//省略 fn = "a" + DateTime.Now.ToString("yyMMddhhmmss") + "." + strExPrentFile; sFilePath = "../uploads/" + fn; fn1 = DateTime.Now.ToString("yyMMddhhmmss") + "." + strExPrentFile1; sFilePath1 = "../uploads/" + fn1; fn2 = DateTime.Now.ToString("yyMMddhhmmss") + "." + strExPrentFile2; sFilePath2 = "../uploads/" + fn2; ......//省略 string strSql="insert into .........." 以上是我的代码,写在提交按钮里。感觉这样写总是不舒服,想搞个方法,传递参数比如说附件名,上传类型等,,然后调用。因为如果是固定的附件<br/>在多以前 如果是6个,那我就要写6个 重复代码。。。自己试着写个方法。。失败。。求助

    不用羡慕----那,只是个传说!
    2009年4月18日 1:37

答案

  • FileName 就可以记录是什么文件
    如果你的意思是想按照客户端上载框的顺序,你可以再加4个隐藏的,input type='hidden'记录,不过,这没有任何意义,因为你不能控制客户端先上传那个文件,按照什么顺序选择
    孟宪会
    2009年4月18日 23:30
    版主

全部回复

  • 我现在换了个方法 ,采用多附件上传,,asp.net多附件上传问题,,页面4个附件,,HttpFileCollection 获得上传集合。4个附件分别对应数据库4个字段,问题是我想实现一个附件名上传到一个数据库对应字段里。如果用户 选择 附件1,3,4上传附件。怎么让记录数据库的字段也是附件 1,3,4 默认是写入数据库字段的是1,2,3 这样位置就错开拉。不选择的附件写入数据库可以是空
    string fn="";
           
    string[] arrfile = new string[] { };
            StringBuilder strMsg
    = new StringBuilder();//定义一个文件流
            HttpFileCollection Files = HttpContext.Current.Request.Files;
           
    for (int i = 0; i < Files.Count; i++)
            {
                HttpPostedFile PostedFile
    = Files[i];
               
    if (PostedFile.ContentLength > 0)
                {
                   
    string FileName = PostedFile.FileName;
                   
    string strExPrentFile = FileName.Substring(FileName.LastIndexOf(".") + 1);
                   
    string[] AgreeExPrentFile = new string[] { "doc", "jpg", "txt", "rar" };
                   
    bool IsUp = false;
                   
    for (int j = 0; j < AgreeExPrentFile.Length; j++)
                    {
                       
    if (strExPrentFile.Equals(AgreeExPrentFile[j]))
                        {
                            IsUp
    = true;
                        }
                    }
                   
    if (IsUp)
                    {
                        fn
    =DateTime.Now.ToString("yyMMddhhmmss")+Strings.GetRandom(5)+"."+strExPrentFile;
                       
                      
                    }
                }
            }
           
        }


    string strSql="insert into table(fujian1,fujian2,fujian3,fujian4) values()";
    不用羡慕----那,只是个传说!
    2009年4月18日 3:19
  • FileName 就可以记录是什么文件
    如果你的意思是想按照客户端上载框的顺序,你可以再加4个隐藏的,input type='hidden'记录,不过,这没有任何意义,因为你不能控制客户端先上传那个文件,按照什么顺序选择
    孟宪会
    2009年4月18日 23:30
    版主