【发布时间】:2019-03-28 14:57:30
【问题描述】:
当我尝试在 Sql server 中保存视频时,我遇到了以下错误: 请求过滤模块用于拒绝超过请求内容长度的请求。
//Converting a file Uploaded in byte before inserting it in DB.
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
string constr = (@"Data Source=(localdb)\MSSQLLocalDB;....");
using (SqlConnection con = new SqlConnection(constr))
{
string query = "insert into tblFiles values (@Name, @ContentType, @Data)";
using (SqlCommand cmd = new SqlCommand(query))
{
//// ????
}
}
}
//我在 Sql_Server 中使用的表类型
CREATE TABLE tblFiles(Id int IDENTITY PRIMARY KEY,Name
VARCHAR(100) NOT NULL,
ContentType NVARCHAR(4000)NOT NULL, Data VARBINARY(MAX)NOT
NULL);
【问题讨论】:
-
我劝你不要像这样将视频直接存储在数据库中。为什么不将它们存储在磁盘上并将路径和文件名放入数据库中?
-
或者使用BLOB ? (但是,是的,我会将视频存储在磁盘上而不是 DB 上)
-
如果问题是“请求过滤模块被配置为拒绝超过请求内容长度的请求。”,那么......问题与存储位置无关(特别是: 与 SQL Server 无关,尽管我同意@SeanLange 将其存储在数据库中是一个糟糕的选择) - 你会遇到同样的问题 where-ever 你存储它 - 问题是它太大,意思是:您的网络服务器被配置为将其视为恶意。有充分的理由。无论您在哪里/如何存储它,它的大小都是一样的。
标签: c# asp.net sql-server