我有一个关于使用 ASP.NET MVC 将文件上传到 SQL 数据库的问题。
这是我要存储图像的表:
表“可交付成果”
- item_id
- Deliverable_image
item_id 来自另一个表,我在其中存储图像的名称、描述、标签……!
这是我的 DeliverableController 的创建视图:
@model GDMfrontEnd.Models.DeliverableViewModel
@{ ViewBag.Title = "Create"; } <h2>Create</h2> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>EventViewModel</legend> <div class="editor-label"> @Html.LabelFor(model => model.Title) </div> <div class="editor-field"> @Html.EditorFor(model => model.Title) @Html.ValidationMessageFor(model => model.Title) </div> <div class="editor-label"> @Html.LabelFor(model => model.Description) </div> <div class="editor-field"> @Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.Description) </div> <div class="editor-label"> @Html.LabelFor(model => model.Thumbnail) </div> <div class="editor-field"> <!-- @Html.EditorFor(model => model.Thumbnail) @Html.ValidationMessageFor(model => model.Thumbnail) --> <form action="/profile/upload" method="post" enctype="multipart/form-data"> <label for="photo">Photo:</label> <input type="file" name="photo" id="photo" /> <input type="submit" value="Upload" /> </form> </div> <div class="editor-label"> @Html.LabelFor(model => model.Image) </div> <div class="editor-field"> @Html.EditorFor(model => model.Image) @Html.ValidationMessageFor(model => model.Image) </div> <div class="editor-label"> @Html.LabelFor(model => model.VideoUrl) </div> <div class="editor-field"> @Html.EditorFor(model => model.VideoUrl) @Html.ValidationMessageFor(model => model.VideoUrl) </div> <p> <input type="submit" value="Create" /> </p> </fieldset> } <div> @Html.ActionLink("Back to List", "Index") </div> @section Scripts { @Scripts.Render("~/bundles/jqueryval") @Scripts.Render("~/bundles/jqueryui") @Styles.Render("~/Content/themes/base/css") </script> }
我的 DeliverableViewModel 如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace GDMfrontEnd.Models
{
public class DeliverableViewModel
{
[Required]
[Display(Name = "Title")]
public string Title { get; set; }
[Required]
[Display(Name = "Description")]
public string Description { get; set; }
[Required]
[Display(Name = "Thumbnail")]
public byte[] Thumbnail { get; set; }
[Required]
[Display(Name = "Image")]
public byte[] Image { get; set; }
[Required]
[Display(Name = "VideoUrl")]
public string VideoUrl { get; set; }
public long UsernameID { get; set; }
}
}
这是我的连接字符串:
<connectionStrings>
<add name="gdmwebsiteEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;User Id=root;database=gdmwebsite"" providerName="System.Data.EntityClient" />
</connectionStrings>
但是我怎样才能上传文件而不仅仅是文本呢?
我已经完成了一些教程,但没有一个非常清楚,而且没有一个适用于 MySQL 数据库。
尼尔斯