ASP.NET MVC を使用して SQL データベースにファイルをアップロードする方法について質問があります。
これは、画像を保存するテーブルです。
テーブル「成果物」
- item_id
- 成果物_画像
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 データベースで動作するものもありません。
ニールス