我想在客户端上传一个文件,存储到服务器的数据库中,文件名是通过file Field控件得到的,请问是不是要用到套接字技术实现?在客户端和服务器端怎么实现啊,哪里有相关文章或代码啊?

解决方案 »

  1.   

    如果文件不大,就用file Field控件上传,上传完了之后,System.File.IO里的StreamReader读出来然后写到写到数据库的Image/ntext字段里去。大文件上传,最后用已经完成的控件,而且最好不要放在数据库里。
      

  2.   

    http://blog.csdn.net/gaofeng2000/archive/2004/08/27/86264.aspx
    是关于图片的,道理差不多.
    大文件最后不要存在数据库-我也这么认为
      

  3.   

    你用的是 file field 控件吗?  用file1.PostFile.saveas  方法  从客户 传文件时目前好像我只用过这个控件
      

  4.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=EY1XLDYV-PIDF-43LO-1WFL-FMY5ALE1F635
      

  5.   

    我做过一个类似的
    是用的MS SQL数据库
    直接把文件读为一个byte数组
    然后把数组写到数据库中一个image类型的记录中
    public int MyDatabaseMethod(string imgName,byte[] imgbin,string filetype,string memo_in,string oldname,int size)

    {
    try
    {
    //通过ConfigurationSettings类的静态属性AppSettings,获取Web.config文件中<appSettings>配置节中键(key)的集合
    //并将其赋给NameValueCollection类的一个实例str_connection
    NameValueCollection str_connection = ConfigurationSettings.AppSettings;
    //通过集合str_connection获取连接信息
    SqlConnection myConnection= new SqlConnection(str_connection.GetValues("sqlConnection")[0]);    
    myConnection.Open();
    string SQL="INSERT INTO TAB_Savefiles(sWJMC,sKZM,imgWJSJ,sWJBZ,sYWJM,dSCSJ,sWJDX) VALUES (@filename,@filetype,@filedata,@filememo,@oldname,'" 
    + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") //格式化日期
    + @"','" + size.ToString() +@"')"; SqlCommand command=new SqlCommand ( SQL,myConnection);

    SqlParameter param0=new SqlParameter ( "@filename", SqlDbType.VarChar,50 );
    param0.Value = imgName;   
    command.Parameters.Add(param0);  SqlParameter param1=new SqlParameter ( "@filetype", SqlDbType.VarChar,50 );   
    param1.Value=filetype;
    command.Parameters.Add(param1); SqlParameter param2 =new SqlParameter ( "@filedata", SqlDbType.Image );
    param2.Value = imgbin;
    command.Parameters.Add(param2);
       
    SqlParameter param3 =new SqlParameter ( "@filememo", SqlDbType.VarChar,100 );
    param3.Value = memo_in;
    command.Parameters.Add(param3); SqlParameter param4 =new SqlParameter ( "@oldname", SqlDbType.VarChar,50 );
    param4.Value = oldname;
    command.Parameters.Add(param4);

    int numRowsAffected = command.ExecuteNonQuery();
    command.Dispose();
    myConnection.Close();
    myConnection.Dispose();
    return numRowsAffected;
    }
    catch
    {
    tips.Text = "数据库操作失败~~~~~~~~!";
    return 0;
    }
    }