用oracle数据库,怎样存pdf or其他文件类型的文件?或者还是把它直接放在硬盘的目录里?不放去数据库呢?

解决方案 »

  1.   

    可以存放路径,直接当成字符串就可以了,如:c:\test.pdf
    也可以存放成二进制形式,如
    SqlConnection conn =null;
    SqlCommand cmd = null;
    SqlParameter param = null;
    FileStream fs = null;
    const string sConn = "server=(local);Initial
     Catalog=Northwind;UID=ctester;PWD=password";
    try {
    conn = new SqlConnection(sConn);
    cmd = new SqlCommand("UPDATE Categories SET Picture = @Picture WHERE
    CategoryName = 'Seafood'", conn);
    fs = new FileStream("c:\\Builder.doc", FileMode.Open, FileAccess.Read);
    Byte[] blob = new Byte[fs.Length];
    fs.Read(blob, 0, blob.Length);
    fs.Close();
    param = new SqlParameter("@Picture", SqlDbType.VarBinary, blob.Length,
    ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, blob);
    cmd.Parameters.Add(param);
    conn.Open();
    cmd.ExecuteNonQuery();
    } catch (SqlException e){
    Console.Write("SQL Exception: " + e.Message());
    } catch (Exception e) {
    Console.Write("Exception: " e.Message());

      

  2.   

    如果你想放到数据库中,可以参考:
    http://surprise.cnblogs.com/archive/2005/12/12/182057.html
    http://delia.org.ru/ArticleView/2005-9-4/Article_View_7163.Htm
    如果你想放到硬盘目录下,可以在数据库中存路径。
    不同应用需求采取不同处理办法,一般而言放到数据库中操作更方便,不用担心权限问题。
      

  3.   

    用blob类型,将文件转换成2进制数组存入数据库。