如何把上传的附件转换后 ,存放到数据库里去.

解决方案 »

  1.   

    转自:http://forums.microsoft.com/china/ShowPost.aspx?PostID=2992275&SiteID=15
    基本思路就是把文件内容读到byte[]数组中,然后像通常的数据库操作那样存到数据库中Image类型的字段中。取得时候,再把数据库中读到的字段值转换成byte[]数组,然后写到文件中。例子如下,在我机器上测试通过(VS2008 + Sql Server Express,WinForm程序):
    Code Snippet//保存,不仅是exe文件,所有的类型的文件操作都一样,我是保存一个txt文件private void button1_Click(object sender, EventArgs e)
      {
       byte[] buffer;
       buffer = File.ReadAllBytes("readme.txt"); //读取文件内容   //创建连接
       SqlConnection connect = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BSPlatform2008;Data Source=.\SqlExpress");
       SqlCommand cmd = connect.CreateCommand();
       cmd.CommandText = "INSERT INTO Tmp (FileContent) VALUES (@FileContent)"; //FileContent字段是Image类型
       cmd.Parameters.Add("@FileContent", SqlDbType.Image);
       cmd.Parameters["@FileContent"].Value = buffer; //接受byte[]类型的值
       connect.Open();
       cmd.ExecuteNonQuery();
       connect.Close();
      }
    代你参考
      
    Code Snippet//读取恢复private void button2_Click(object sender, EventArgs e)
      {
       byte[] buffer;
       SqlConnection connect = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BSPlatform2008;Data Source=.\SqlExpress");
       SqlCommand cmd = connect.CreateCommand();
       cmd.CommandText = "SELECT TOP 1 FileContent FROM Tmp";
       connect.Open();
       buffer = (byte[])cmd.ExecuteScalar(); //从数据库中取到的Image类型的字段的值,转换成byte[]类型   File.WriteAllBytes("Readme2.txt", buffer);  } 
      

  2.   

    一般数据库都可以直接存储byte[]类型的,你只要在程序中把文件转为byte[]就可以了。
      

  3.   

    看附件文件类型,图片,EXCEL等都可保存到数据库。其他格式最好保存路径
      

  4.   

    pdf,doc这些可以保存在数据库不?
      

  5.   

    嗯对存储路径就可以了,要么就写byte流的形式.
      

  6.   

    TO tonyepaper :
    为什么在读取的时候没有反应呢?
      

  7.   

    照片弄成byte流还可以,其它文件的话,怕会出错
      

  8.   

    文件类型没什么关系的,参考一下blog.csdn.net/yistudio
      

  9.   

    可以保存,都是以byte[]方式存储,文件类型没有限制。
      

  10.   

    txt文件可以直接将文件内容存储到数据库中
    一般的文件可以以二进制存储在数据库中,用FileStream上传和读取
      

  11.   

    最好还是存图片路径到数据路,而不是图片内容,如果是图片内容,则使用 byte
      

  12.   


    我也知道,但我们这里要求写到数据库里,我也没有办法哈.那位大侠给一个例子哈.我只能读取.txt的文件,其他都读不出来..郁闷的很.