【发布时间】:2014-08-30 17:59:24
【问题描述】:
我在公司博客网站上工作,当用户发布帖子时,他们可以将计算机中的图像添加到帖子中。我使用 FileUpload 控件来执行此操作,效果很好。但是,我正在尝试更改功能以允许用户在一篇文章中选择和上传多张图片,但我遇到了一些问题。我已将“允许多个”属性设置为“真”,但是一旦在控件中选择了多个图像(图像 URL 用逗号分隔)并单击发布按钮,只有一个图像被插入到数据库中,但它被插入的次数与图像的数量一样多,并且只有一张图像显示在博客文章中。因此,如果我尝试添加三个不同的图像,它会将第一个图像的三个实例插入到数据库中。我的 onClick 函数中 FileUpload 对应的代码如下:
if (imageUpload.HasFile == true)
{
SqlCommand maxMessId = new SqlCommand("SELECT Max(MessageID) FROM BlogMessages", conn);
lastMessageID = Convert.ToInt32(maxMessId.ExecuteScalar());
foreach (var uploadedFile in imageUpload.PostedFiles)
{
SqlCommand cmdInsertImage = new SqlCommand("INSERT INTO BlogImages(Image, MessageID) VALUES (@Image, @MessageID)", conn);
cmdInsertImage.Parameters.AddWithValue("@Image", SqlDbType.Image).Value = imageUpload.FileBytes;
cmdInsertImage.Parameters.AddWithValue("@MessageID", lastMessageID);
cmdInsertImage.ExecuteNonQuery();
}
}
我认为问题可能出在:
cmdInsertImage.Parameters.AddWithValue("@Image", SqlDbType.Image).Value = imageUpload.FileBytes;
如果只获取一个图像的文件字节。我不确定如何获取两个文件的文件字节。我的 BlogImages 表中的 image 列是 Image 类型。
非常感谢任何建议!
【问题讨论】:
标签: c# asp.net image file-upload