だから私はこの小さなコードをすべて検索し、ほとんどすべての作業を完了しました。私は画像をアップロードし、作成したフォルダに保存することができます。他の値もデータベースに保存することができます。今私の問題は、私は別のページに画像を表示するために呼び出すことができるように、データベースにファイルパスを保存したいということです。何らかの理由で、アップロードされているイメージの名前だけが保存され、パスは保存されません。データベースへのファイルパスを保存すると、ファイル名のみが保存されます
私はそれをデバッグすると私は評価されている file.SaveAs(pathLoc);
式に時計を追加し、何の価値ボイドここ
を持っていないとき、すべてが渡さなっているものを参照してくださいコードIであります使用beed」VEの
コントローラ
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ImageInfo info, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
if (file != null)
{
var pic = Path.GetFileName(file.FileName);
var pathLoc = Path.Combine(Server.MapPath("~/Uploads/") + pic);
file.SaveAs(pathLoc);
info.ImagePath = file.FileName;
db.SaveChanges();
}
return RedirectToAction("Index");
}
return View(info);
}
ビュー
<h2>Create</h2>
@using (Html.BeginForm("Create", "ImageInfoes", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="form-horizontal">
<h4>ImageInfo</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.ImageName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.ImageName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.ImageName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.ImageSize, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.ImageSize, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.ImageSize, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.ImagePath, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input id="ImagePath" title="Upload a product image" type="file" name="file" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
モデル
public partial class ImageInfo
{
public byte id { get; set; }
public string ImageName { get; set; }
public Nullable<long> ImageSize { get; set; }
public string ImagePath { get; set; }
}
ものはいっぱい助けになります。
info.ImagePath = file.FileName。 => FileNameはあなたにfile ...という名前だけを与えます。 –
'file.Filename'の代わりに' pathLoc'を設定しますか? – Berkay
私はfile.FileNameからpathLocにdb.SaveChanges()を変更します。スローとエラー。 – whisk