使用 C#/.NET 将图像上传到服务器并将文件名存储在数据库中

发布于 2024-11-08 12:08:37 字数 753 浏览 0 评论 0原文

我目前正在使用以下代码片段将数据插入数据库的表中。效果很好。但是,我想开始添加文件名数据,但不确定如何继续。

我有以下内容:

// Create command 
comm = new SqlCommand(
  "INSERT INTO Entries (Title, Description) " +
  "VALUES (@Title, @Description)", conn);

// Add command parameters
comm.Parameters.Add("@Description", System.Data.SqlDbType.Text);
comm.Parameters["@Description"].Value = descriptionTextBox.Text;
comm.Parameters.Add("@Title", System.Data.SqlDbType.NVarChar, 50);
comm.Parameters["@Title"].Value = titleTextBox.Text;

我还有一个文件上传选项。但是,我不知道如何使用它来执行以下操作:

  • 将文件移动到我的images 目录并将
  • 文件名 值存储在我的表中。

我已将正确的 enctype 添加到我的表单中,但现在有点丢失。

有人可以解释执行此操作的最佳方法吗?

非常感谢您对此提供的任何帮助。

I'm currently using the following snippet to insert data into a table in my database. It works great. But, I want to start adding filename data and not sure how to proceed.

I have the following:

// Create command 
comm = new SqlCommand(
  "INSERT INTO Entries (Title, Description) " +
  "VALUES (@Title, @Description)", conn);

// Add command parameters
comm.Parameters.Add("@Description", System.Data.SqlDbType.Text);
comm.Parameters["@Description"].Value = descriptionTextBox.Text;
comm.Parameters.Add("@Title", System.Data.SqlDbType.NVarChar, 50);
comm.Parameters["@Title"].Value = titleTextBox.Text;

I also have a File Upload option. But, I don't know how to use this to do the following:

  • move the file to my images directory and
  • store the filename value in my table.

I have added the correct enctype to my form but now a little lost.

Can someone explain the best way to do this?

Many thanks for any help with this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

溺渁∝ 2024-11-15 12:08:37

要将文件存储在图像文件夹中,应该是:

FileUpload1.SaveAs(Server.MapPath("~/Images/" + FileUpload1.FileName));

然后在 fileName 中添加命令参数

comm.Parameters["@FileName"].Value = FileUpload1.FileName;

注意:数据库表中必须有 FileName 字段。

To store the file in an images folder, it should be:

FileUpload1.SaveAs(Server.MapPath("~/Images/" + FileUpload1.FileName));

and then add the command parameters in the fileName

comm.Parameters["@FileName"].Value = FileUpload1.FileName;

Note: you must have the FileName field in your DB table.

恏ㄋ傷疤忘ㄋ疼 2024-11-15 12:08:37

我建议也将文件存储在数据库中。这将保证数据的一致性。

将列添加到数据库。如果图像小于 8000,请将 X 替换为合适的大小,如果不是,则指定 varbinary(MAX)。

alter table Entries
    add FileContent varbinary(X) not null

C#代码:

byte[] fileContent = yourFileContent;
using(var connection = new SqlConnection(connectionString))
using (var command = connection.CreateCommand())
{
    command.CommandText = @"
        INSERT INTO Entries (Title, Description, FileContent)
        VALUES (@Title, @Description, @FileContent)
        ";
    command.Parameters.AddWithValue("Description", descriptionTextBox.Text);
    command.Parameters.AddWithValue("Title", titleTextBox.Text);
    command.Parameters.AddWithValue("FileContent", fileContent);
    connection.Open();
    command.ExecuteScalar();
}

I suggest storing file in the db too. This will guarantee data consistency.

Add column to the DB. Replace X with the suitable size if the image is less than 8000, or specify varbinary(MAX) if it is not.

alter table Entries
    add FileContent varbinary(X) not null

C# code:

byte[] fileContent = yourFileContent;
using(var connection = new SqlConnection(connectionString))
using (var command = connection.CreateCommand())
{
    command.CommandText = @"
        INSERT INTO Entries (Title, Description, FileContent)
        VALUES (@Title, @Description, @FileContent)
        ";
    command.Parameters.AddWithValue("Description", descriptionTextBox.Text);
    command.Parameters.AddWithValue("Title", titleTextBox.Text);
    command.Parameters.AddWithValue("FileContent", fileContent);
    connection.Open();
    command.ExecuteScalar();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文