我想上传文件,每上传一次就把文件名字绑定到一个dropdownlist中去,同时也可以删除,但这时只是把文件保存到临时表中实现的效果而已.....直到我点了保存按钮才会把文件真正保存到本地硬盘中去.大家是怎样实现的呢

解决方案 »

  1.   

    按钮click事件里,将浏览后的文件完整路径写到List里,上传时得到这个路径……其他的操作都是一样的
      

  2.   

    这只是一个流程问题,涉及到的技术点是上传图片到数据库,绑定数据到dropdownlist,将数据库中的二进制的图片文件信息读出并生成文件保存在服务器上。
    只要把这几个技术点研究透了就解决了
      

  3.   

    我上传的时候是用这个方法:
    public string UpLoadFile(System.Web.UI.Page myPage)
    {
    string returnFilePath = "";
    //'遍历File表单元素
    HttpFileCollection files  = HttpContext.Current.Request.Files;
    try
    {
    for(int iFile = 0; iFile < files.Count; iFile++)
    {
    //'检查文件扩展名字
    HttpPostedFile postedFile = files[iFile];
    string fileName, fileExtension ;
    int fileSize = 0;
    fileName = System.IO.Path.GetFileName(postedFile.FileName);
    fileSize = postedFile.ContentLength/1024;
    if(fileSize > 1024*2)
    {
    return "ER:上传文件不能超过2M";
    }
    if (fileName != "")
    {
    fileExtension = System.IO.Path.GetExtension(fileName);//文件扩展名

    returnFilePath += fileName + "*" + fileSize + "*" + "../upfile/" + fileName+";";
    //returnFilePath += fileName+";";
    }
    }
    }保存的时候就是用这个:
    public string UpLoadFile(stirng textName,System.Web.UI.Page myPage)
    {
    string Path = textName.split(';');
    //'遍历File表单元素
    HttpFileCollection files  = HttpContext.Current.Request.Files;
    try
    {
    for(int iFile = 0; iFile < files.Count; iFile++)
    { HttpPostedFile postedFile = files[iFile];
                                            foreach(int fileName in path)
                                         {
    if (fileName != "")
    {
    postedFile.SaveAs(myPage.Server.MapPath("/CompanyFrame/upfile")+"\\" + fileName);
    }
                                         }
    }
    }
                    }这样保存的后果就是,有个同样名字的文件存在,但是文件没大小,没内容.
    谁能够帮我改一下代码呢.
      

  4.   

    你上一次上传的文件并没有保存,在下一个文件传输的时候,asp.net会自动把文件丢弃掉。
    所以你需要在服务器状态中保存上一次上传文件的内容。楼主提出的方法在标准asp.net控件中实现是不可能的,可以给你提出一个替代的方法:将用户上传的文件先保存到一个临时目录,用户的添加删除操作都在该目录进行,之后提交的时候再将该目录里面所有内容保存如数据库,然后清理掉垃圾。
      

  5.   

    1:上传后能在DDL里显示。那这样要绑定数据库,文件名从数据库里读出来
    这一步我想你应当可以做吧,这个与一般的绑定差不多2:可以随时删除,是放到一个临时表中实现本功能
    这个我想也不难吧:不要删除文件,而是将文件的文件名中数据表A中转到表B中,这里你在DDL显示的时候用到的是A表3:点保存才真正把文件上传?不是很理解你的意思,不般不就是这样的吗?还是我理解不对?4:下面我安我的理解给你讲一下吧,首先是选择要上传的文件,然后将其上传(这里你可以将文件改名),然后是将文件名显示在DDL,再接着是做删除功能,点删除后将文件名从A表转到B表,实现模拟删除。是不是这样?
      

  6.   

    我现在的难点应该是这样:
    我把上传的全路径名如:D:\photo\1.jpg;D:\photo\2.jpg;D:\photo\3.jpg;保存到一个
    TextBox里,现在我要根据这些路径把文件保存到/CompanyFrame/upfile,这个方法应该怎样写呢.
      

  7.   

    我现在的难点应该是这样:
    我把上传的全路径名如:D:\photo\1.jpg;D:\photo\2.jpg;D:\photo\3.jpg;保存到一个
    TextBox里,现在我要根据这些路径把文件保存到/CompanyFrame/upfile,这个方法应该怎样写呢.
    ---------------------------
    D:\photo\1.jpg;D:\photo\2.jpg;D:\photo\3.jpg,这个是客户端的路径?如果是这样,应该是不现实的.应该先保存到服务器的临时文件夹中,然后最终移动到实际的存储文件夹,这样觉得到可行`~建议搂主参考一下163或google的多文件上传实现方案~
      

  8.   

    先传到服务器上一个临时空间,然后根据自己的选择,把文件转移到自己希望的地方去比如选择了D:\photo\1.jpg;D:\photo\2.jpg;D:\photo\3.jpg,那就把这三个文件传到服务器的临时空间去,如果到时候真正需要上传的是D:\photo\1.jpg;D:\photo\2.jpg(如果是放在textbox中,可以分离文件名,然后判断需要移动哪些文件),就把1.jpg,2.jpg移动过去就行了。