数据库二进制文件保存文件
A. 以二进制形式保存文件到数据库 有什么优点缺点呢请指教 数据库是mysql,文件类型是doc和txt
优点,不用单独管理文件了呗,文件数据都在数据库里呢。用户想访问文件的话,你就可以做一些权限检查什么的,通过才给它取数据。
缺点,数据库稍微有些压力呗~~~~数据库文件会变大~~~
B. 如何实现将文件以二进制形式存放到数据库中
这个很简单的,这要把表单
这样设置一下,表单里面的数据就是以二进制的形式传到数据库的,至于怎么传到数据库,这个就不用说吧,一个SQL插入语句就行了的,。
C. 数据库中的二进制文件如何还原并保存
文件存库里面啊?那多占空间啊!加载是很慢的!是不是图片?
这里有个操作物理路径下载的函数:
private void FileDown(string strPath)
{
System.IO.FileInfo file = new System.IO.FileInfo(strPath);
if (file.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.FullName, System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Filter.Close();
Response.WriteFile(file.FullName);
Response.End();
}
else
{
ClientScript.RegisterStartupScript(GetType(), "", "<script language='javascript'>alert('文件不存在!');</script>");
}
}
如果是存取图片的话:
存:
FileStream fs = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.Write);
byte[] myData = new byte[fileStream.Length];
fileStream.Read(myData, 0, System.Convert.ToInt32(fileStream.Length));//从流中读取字节块,并将数据写入到该缓冲区
fileStream.Close();
...把mydata插入到数据库就好勒!
取:
取出byte[]来,直接image.formStream(fs);
D. 怎样用VB将数据库中的二进制文件保存到磁盘
我说下思路
varbinary 的数据库你能取得到 ,通过sql语句或存储过程 ,然后 new 一个数组,把这个数组写入到文件里。文件打开的模式用 w |b 这样的标识 。