誰かが私に助けてくれたらと思います。私はビュー内のフォームで入力ファイルコントロールを持っています。誰かが画像を選択してフォーム上の[送信]ボタンをクリックすると、そのファイルはアプリケーション内の/ Picturesフォルダに保存され、ファイルパスはSQLデータベースに保存する必要があります。文字列(例:/ Pictures/filename)。ASP.NET MVC - 画像をアップロードしてURLをデータベースに保存する方法
モデルクラスの一部:
[Table("Automobil")]
public partial class Automobil
{ .....
[Required]
[StringLength(30)]
public string Fotografija{ get; set; }
......
ビュー(作成)ファイルの一部:
@using (Html.BeginForm("Create", "Automobili", FormMethod.Post, new { enctype = "multipart/form-data" }))
....
<div class="form-group">
<div class="editor-field">
@Html.TextBoxFor(model => model.Fotografija, new { type = "file" })
@Html.ValidationMessageFor(model => model.Fotografija, "", new { @class = "text-danger" })
</div>
</div>
....
コントローラー部分:私は写真を行う必要があり何
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "AutomobilID,Marka,Model,Godiste,Zapremina_motora,Snaga,Gorivo,Karoserija,Fotografija,Opis,Cena,Kontakt")] Automobil automobil)
{
if (ModelState.IsValid)
{
db.Automobils.Add(automobil);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(automobil);
}
(Fotografija )はアプリケーションフォルダのPicturesやSQLベースのファイルパス(/ Pictures/filenameなど)に保存できますか?
初心者を助けてくれてありがとうございます。
データベースに絶対パスを入れないでください。ファイル名を入力してください。この方法では、格納先のフォルダの名前を変更したり名前を変更したりする必要はありません。コードを一箇所で変更するだけです(コードを正しく構成していると仮定します)。 –
上記のコードを使用すると、画像に30文字までの妥当性検査エラーを取得します。また、アプリケーション自体に画像自体は保存されません。 – Oggie
'[StringLength(30)]'を削除してください – Oluwafemi