首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

一个小小的改动就能搞定,请大大帮小弟我看一下,来看的都有分

2012-01-02 
一个小小的改动就能搞定,请大大帮我看一下,来看的都有分下面是我多文件上传的代码:请帮我看一下上传的文件

一个小小的改动就能搞定,请大大帮我看一下,来看的都有分
下面是我多文件上传的代码:请帮我看一下上传的文件大小为什么都是0,文件内容都不见了,请问这个要如何改?先拜谢~~
        public   static   DataTable   upfiles;
        public   void   CreatTable()
        {
                upfiles   =   new   DataTable( "upfile ");
                DataColumn[]   keys   =   new   DataColumn[1];
                keys[0]   =   upfiles.Columns.Add( "filename ",   typeof(string));
                keys[0].AllowDBNull   =   false;
                upfiles.PrimaryKey   =   keys;
                upfiles.Columns.Add( "filestream ",   typeof(Stream));
                fname.Text   =   " ";
                fname1.Text   =   " ";
        }
        ///   <summary>
        ///   增加附件至列表
        ///   </summary>
        private   void   AddFile()
        {
                if   (upfiles   ==   null)
                {
                        CreatTable();
                }
                if   (myFile.PostedFile.FileName   !=   " ")
                {
                        string   nam   =   myFile.PostedFile.FileName;
                        int   i   =   nam.LastIndexOf( "\\ ");
                        string   filename   =   nam.Substring(i   +   1);
                        if   (upfiles.Rows.Find(filename)   ==   null)
                        {
                                Stream   fstream   =   myFile.PostedFile.InputStream;
                                DataRow   dr   =   upfiles.NewRow();
                                dr[0]   =   filename;//获取文件名
                                upfiles.Rows.Add(dr);//增加
                                ArrayList   dc   =   new   ArrayList();
                                for   (int   j   =   0;   j   <   upfiles.Rows.Count;   j++)


                                {
                                        DataRow   df   =   upfiles.Rows[j];
                                        dc.Add(df[0].ToString());
                                }
                                files.DataSource   =   dc;
                                files.DataBind();
                        }
                }
        }
  private   void   UploadFile()
        {
                string   userId   =   this.GetSessionState( "userId ");
                if   (upfiles.Rows.Count   >   0)
                {
                        fname.Text   =   " ";
                        for   (int   j   =   0;   j   <   upfiles.Rows.Count;   j++)
                        {
                                DataRow   dr   =   upfiles.Rows[j];
                                string   topath   =   (this.GetSessionState( "userId ")   +   "/ ")   +   dr[0];
                                string   absolutepath   =   Server.MapPath(topath);
                                fname.Text   +=   topath.ToString()   +   "; ";
                                myFile.PostedFile.SaveAs(absolutepath);
                          }
                  }  
        }

[解决办法]
看了
没看出名堂

[解决办法]
来学习的
[解决办法]
学习
[解决办法]
循环中保存多个文件???如果只有一个file控件,怎么能保存多个文件?
[解决办法]
看了,幫頂!
------解决方案--------------------


if (upfiles.Rows.Count > 0)
{
fname.Text = " ";
for (int j = 0; j < upfiles.Rows.Count; j++)
{
DataRow dr = upfiles.Rows[j];
string topath = (this.GetSessionState( "userId ") + "/ ") + dr[0];
string absolutepath = Server.MapPath(topath);
fname.Text += topath.ToString() + "; ";
myFile.PostedFile.SaveAs(absolutepath);
}
}
我觉得
DataRow dr = upfiles.Rows[j];
string topath = (this.GetSessionState( "userId ") + "/ ") + dr[0];
这两句应该改成
string topath = (this.GetSessionState( "userId ") + "/ ") + upfiles.Rows[j];
[解决办法]
循环出的问题.
[解决办法]
我看了,没看完...
但还是看了...
[解决办法]
看啦不懂
帮楼主 顶下!
[解决办法]
顶了,研究研究先
[解决办法]
應該可以呀,我們看看別人的實例:
1、在AddFile(...)裡,把文件轉成二進制流保存到DataTable:
......
Stream fstream=myFile.PostedFile.InputStream;
.....
dr[2]=fstream;//文件流

2、在UploadFile(...)裡,把二進制流轉成文件
DataRow dr=upfiles.Rows[j];
string topath=Server.MapPath( ".\\ "+dr[0]);
int FileLen=Convert.ToInt32(dr[1]);
byte[] input = new byte[FileLen];
((System.IO.Stream)dr[2]).Read(input, 0, FileLen);
FileStream fw = new FileStream(topath,FileMode.Create,FileAccess.Write);
fw.Write(input,0,FileLen);
fw.Close();
//其中,變量topath存的是服務器上的文件保存路徑。

热点排行