如何将上传图片直接保存至SQL Server数据库中

这里演示的是如何将上传图片直接保存至SQL Server数据库中。

在数据库中,图片使用varbinary(MAX)存储:

这是个基于MVC3架构的例子。废话不多说,直接上代码:

View:

@{
    ViewBag.Title = "UpLoadImg";
}
@using (Html.BeginForm("Create", "UpLoadImg", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <h2>
        UpLoadImg</h2>
    <div id="mainform">
        <div>
            <input type="file" id="UpLoadFile" name="UpLoadFile" />
            <input id="btnUpLoad" type="submit" value="上传" />
        </div>
        <div>
        </div>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C# ,您可以通过以下步骤将文件上传到 SQL Server 数据库,并从数据库下载文件: 文件上传: 1. 创建一个包含文件选择按钮和上传按钮的窗体界面。 2. 在用户点击上传按钮时,使用 OpenFileDialog 对话框让用户选择要上传的文件。 3. 将选择的文件读取为字节数组(byte[])。 ```csharp byte[] fileBytes; using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { using (var reader = new BinaryReader(stream)) { fileBytes = reader.ReadBytes((int)stream.Length); } } ``` 4. 将字节数组作为参数,使用 SQLCommand 执行 INSERT 语句将文件内容插入到数据库的相应表和列。 ```csharp using (var connection = new SqlConnection(connectionString)) { connection.Open(); var query = "INSERT INTO YourTableName (FileColumn) VALUES (@FileData)"; var command = new SqlCommand(query, connection); command.Parameters.AddWithValue("@FileData", fileBytes); command.ExecuteNonQuery(); } ``` 文件下载: 1. 创建一个窗体界面,包含一个用于输入文件名的文本框和一个下载按钮。 2. 用户在文本框输入要下载的文件名。 3. 在用户点击下载按钮时,使用 SQLCommand 执行 SELECT 语句,检索数据库对应文件名的字节数组数据。 ```csharp byte[] fileBytes; using (var connection = new SqlConnection(connectionString)) { connection.Open(); var query = "SELECT FileColumn FROM YourTableName WHERE FileName = @FileName"; var command = new SqlCommand(query, connection); command.Parameters.AddWithValue("@FileName", fileName); fileBytes = (byte[])command.ExecuteScalar(); } ``` 4. 将检索到的字节数组保存为文件。 ```csharp using (var stream = new FileStream(savePath, FileMode.Create, FileAccess.Write)) { using (var writer = new BinaryWriter(stream)) { writer.Write(fileBytes, 0, fileBytes.Length); } } ``` 注意替换 `connectionString`、`YourTableName`、`FileColumn`、`FileName`、`filePath`、`savePath` 等参数和变量为您的实际值和变量名。 这是一个基本的示例,您可以根据自己的需求进行扩展和修改。请确保您的数据库表包含适当的列来存储文件内容和文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值