求个.NET C/S 传文件到数据库的方法

sardineany 2010-06-25 09:28:04
网上看到的都是B/S的方法,本人B/S底子很薄。。所以请求找个C/S的程序或者求高人给个程序。。。
...全文
91 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sardineany 2010-06-25
  • 打赏
  • 举报
回复
我怎么也犯这种错误了。。要代码。。不好不好。。自己写一个试试。。成功的话了当给大家散分啦。。
xy325432 2010-06-25
  • 打赏
  • 举报
回复
B/S和C/S向数据库里面插入文件不都是一样的吗
netchildren 2010-06-25
  • 打赏
  • 举报
回复
传文件到数据库,在.net中不是一样的吗
hjhuacandy 2010-06-25
  • 打赏
  • 举报
回复
FileStream fileStream = new FileStream(FileUpload.FileName, FileMode.Open, FileAccess.Read);
//判断是否限制大小
//if (fileStream.Length > CommLibrary.CommParam.ImageMaxSize)
//{

// int maxsize = CommLibrary.CommParam.ImageMaxSize / 1024 / 1024;
// MessageBox.Show("上传的文件大小不能大于" + maxsize.ToString() + "M", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
// return;
//}
string Name = FileUpload.FileName;
string[] AName = Name.Split('\\');
int NameNum = AName.Count();
if (AName[NameNum - 1].Substring(AName[NameNum - 1].Length-4)!="pdf")
{
Ext.Msg.Alert("提示", "请选择PDF文件上传").Show();
return;
}

//写入流中
byte[] byteImage = new byte[fileStream.Length];
fileStream.Read(byteImage, 0, (int)fileStream.Length);

//保存
fileStream.Close();
捷哥1999 2010-06-25
  • 打赏
  • 举报
回复
注释一下,并补充读取数据库文件内容的方法:

//插入文件内容到数据库
static void StoreFile(string filename)
{
//创建一个数据库连接到本地的FileStore 数据库,你可以修改数据库名称
SqlConnection connection = new SqlConnection
("Server=(local) ; Initial Catalog = FileStore ; Integrated Security = SSPI");

//创建一个执行插入命令的SqlCommand对象
SqlCommand command = new SqlCommand
("INSERT INTO MyFiles VALUES (@Filename, @Data)", connection);

//给sql命令的参数赋值
command.Parameters.AddWithValue("@Filename", Path.GetFileName(filename));
//使用File.ReadAllByte方法读取文件内容
command.Parameters.AddWithValue("@Data", File.ReadAllBytes(filename));
//打开连接
connection.Open();
//执行命令
command.ExecuteNonQuery();
//关闭连接
connection.Close();
}
//从数据库读取文件内容
static byte[] RetrieveFile(string filename)
{
SqlConnection connection = new SqlConnection
("Server=(local) ; Initial Catalog = FileStore ; Integrated Security = SSPI");

SqlCommand command = new SqlCommand
("SELECT * FROM MyFiles WHERE Filename=@Filename", connection);

command.Parameters.AddWithValue("@Filename", filename);

connection.Open();

SqlDataReader reader =
command.ExecuteReader(System.Data.CommandBehavior.SequentialAccess);//指定顺序读取文件的字节

reader.Read();

MemoryStream memory = new MemoryStream();

long startIndex = 0;
const int ChunkSize = 256;
while (true)
{
byte[] buffer = new byte[ChunkSize];

long retrievedBytes = reader.GetBytes(1, startIndex, buffer, 0, ChunkSize);

memory.Write(buffer, 0, (int)retrievedBytes);

startIndex += retrievedBytes;

if (retrievedBytes != ChunkSize)
break;
}

connection.Close();

byte[] data = memory.ToArray();

memory.Dispose();

return data;
}


zhushoudong 2010-06-25
  • 打赏
  • 举报
回复
也可以用个自带的FTP进行上传上去,把文件内容放到数据库里》?这么麻烦
wuyq11 2010-06-25
  • 打赏
  • 举报
回复
openfiledialog选择文件,读取文件数据
或通过ftpwebrequest,webservices上传,保持路径
捷哥1999 2010-06-25
  • 打赏
  • 举报
回复
C/S传文件给数据库?
你应该要实现插入文件内容到数据库吧?
是sqlserver数据库还是?

下面是sqlserver的一个实现:
static void StoreFile(string filename)
{
SqlConnection connection = new SqlConnection
("Server=(local) ; Initial Catalog = FileStore ; Integrated Security = SSPI");

SqlCommand command = new SqlCommand
("INSERT INTO MyFiles VALUES (@Filename, @Data)", connection);

command.Parameters.AddWithValue("@Filename", Path.GetFileName(filename));
command.Parameters.AddWithValue("@Data", File.ReadAllBytes(filename));

connection.Open();

command.ExecuteNonQuery();

connection.Close();
}
RedFish2010 2010-06-25
  • 打赏
  • 举报
回复
传数据吧。
这个B/S和c/S都一样吧,首先连接数据库,然后向数据库中插入数据就ok吧
myhope88 2010-06-25
  • 打赏
  • 举报
回复
传文件到数据库,在.net中不是一样的吗
sardineany 2010-06-25
  • 打赏
  • 举报
回复
DDDDD
sardineany 2010-06-25
  • 打赏
  • 举报
回复
OK,解决了。。。。谢谢各位。。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧