私はMVCには比較的新しいので、SQL Serverデータベースにファイル(特にイメージ)をアップロードする必要はありませんでした。正直言って、私はここで何をやっているのか分かりません。MVC4では、ドメインモデルの一部であるSQL Serverにファイル(画像)をアップロードするにはどうすればよいですか?
は、ここで私がこれまで持っているものだ - ここに私のドメインモデルは、(私のモデルでHttpPostedFileBase
に注意してください - これは私がアップロードしたいものです)です:
public class Profile
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage="Years of service is required")]
[DisplayName("Years Service:")]
public int YearsService { get; set; }
[DataType(DataType.MultilineText)]
[DisplayName("Notable Achivements:")]
public string NotableAchivements { get; set; }
[Required(ErrorMessage = "Technical skills are required")]
[DataType(DataType.MultilineText)]
[DisplayName("Technical Skills:")]
public string TechnicalSkills { get; set; }
[DisplayName("Upload Image: ")]
public HttpPostedFileBase Photo { get; set; }
public string CreatedBy { get; set; }
public DateTime CreatedDate { get; set; }
public string ModifiedBy { get; set; }
public DateTime ModifiedDate { get; set; }
}
そしてここでは、私の見解です:
@using (Html.BeginForm("Create", "Profiles", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="editor-label">
@Html.LabelFor(model => model.YearsService)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.YearsService)
@Html.ValidationMessageFor(model => model.YearsService)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.NotableAchivements)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.NotableAchivements)
@Html.ValidationMessageFor(model => model.NotableAchivements)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TechnicalSkills)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.TechnicalSkills)
@Html.ValidationMessageFor(model => model.TechnicalSkills)
</div>
<input type="file" name="photo" />
<input type="submit" name="Submit" id="Submit" value="Upload" />
}
私が間違っていることが明らかに明白な何かがあることを願っています。 SQL Serverデータベースへの単純なファイルアップロードの方法に関するアドバイスを誰でも提供できますか?
どのようにこの状況でWebファームを処理しますか? –
イメージをデータベースに保存する正当な理由があります。この場合、ファイルシステムへの保存はどのように機能しますか? –
特にマルチテナント環境では、静的リソースサーバー、またはおそらくはオフサイトCDNが必要です。したがって、あなたのサイトはすべて、 'static.yourdomain.com'のようなものを参照するだけです。これは大男(Facebook、Twitter、Googleなど)が行うことです。データベースに格納するには、そのデータベースから読み込み、ASP.NETスタック全体を回転させ、画像データをレスポンスに書き込む必要があります。小規模なサイトではそれほど悪くないかもしれませんが、GoogleやFacebookなどのサイトを運営しようとしているかもしれません。あなたは絶えず倒れているか、何百万人ものインフラストラクチャに投資しています。 –