主题:[求助].Net文件上传到数据库及从数据库中读取!
用.Net做文件上传到Oracle数据库,在Oracle里用blob存放文件。
建表和存储过程如下。
create table T_filetodb
(
id int,
filename varchar2(100),
filedb blob,
length in number,
constraint pk_T_filetodb primary key(ID)
)
create or replace procedure iSP_NewFile
(
id in int,
filename in varchar2,
filedb in blob,
length in number
)
as
begin
insert into t_filetodb
values
(id,filename,filedb,length);
end;
然后我写了一个方法来调用这个存储过程,
public int SaveFileToDb(string filename,byte[] _file)
{
OleDbCommand cmd=new OleDbCommand("iSP_NewFile",_MyConnection);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@id",OleDbType.Integer);
cmd.Parameters.Add("@filename",OleDbType.VarChar,100);
cmd.Parameters.Add("@filedb",OleDbType.Variant);
cmd.Parameters[0].Value=GetMaxID();
cmd.Parameters[1].Value=filename;
cmd.Parameters[2].Value=_file;
int i=cmd.ExecuteNonQuery();
_MyConnection.Close();
return i;
}
OleDbType.Variant这个参数用什么对象来传递?用byte[]不行。
文件下载的时候怎么把filedb字段转换成 byte[], 然后用Response.BinaryWrite()来发送?现在主要是上传的问题大一些。我看网上的例子说可以设置RequestTime, RequestSize,可是我不知道在哪里设置,请高手指点。谢谢
建表和存储过程如下。
create table T_filetodb
(
id int,
filename varchar2(100),
filedb blob,
length in number,
constraint pk_T_filetodb primary key(ID)
)
create or replace procedure iSP_NewFile
(
id in int,
filename in varchar2,
filedb in blob,
length in number
)
as
begin
insert into t_filetodb
values
(id,filename,filedb,length);
end;
然后我写了一个方法来调用这个存储过程,
public int SaveFileToDb(string filename,byte[] _file)
{
OleDbCommand cmd=new OleDbCommand("iSP_NewFile",_MyConnection);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@id",OleDbType.Integer);
cmd.Parameters.Add("@filename",OleDbType.VarChar,100);
cmd.Parameters.Add("@filedb",OleDbType.Variant);
cmd.Parameters[0].Value=GetMaxID();
cmd.Parameters[1].Value=filename;
cmd.Parameters[2].Value=_file;
int i=cmd.ExecuteNonQuery();
_MyConnection.Close();
return i;
}
OleDbType.Variant这个参数用什么对象来传递?用byte[]不行。
文件下载的时候怎么把filedb字段转换成 byte[], 然后用Response.BinaryWrite()来发送?现在主要是上传的问题大一些。我看网上的例子说可以设置RequestTime, RequestSize,可是我不知道在哪里设置,请高手指点。谢谢