1

ファイルのアップロードをasp.net mvc4に追加しようとしていますが、C#を学習しているだけなので、どこに追加すればよいかわかりません:

これはコントローラーです:

public ActionResult Create()
        {
            ViewBag.c_id = new SelectList(db.Cities.OrderBy(o => o.name), "c_id", "name");
            ViewBag.m_id = new SelectList(db.Schools, "m_id", "name");

            return View();
        }

        //
        // POST: /Create

        [HttpPost]
        public ActionResult Create(TotalReport treport)
        {
            if (ModelState.IsValid)
            {
                treport.created = DateTime.Now;

                db.TotalReports.Add(treport);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.c_id = new SelectList(db.Cities.OrderBy(o => o.name), "c_id", "name");
            ViewBag.m_id = new SelectList(db.Schools, "m_id", "name");

            return View(treport);
        }

ビューはここにあります:

@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.ValidationSummary(true)

    <fieldset>
<div class="mycss">
        <input type="file" name="file" />
     </div>
</fieldset>

OK、ファイルを保存する部分は次のとおりです。

if (file != null && file.ContentLength > 0)
            {
                // extract only the fielname
                var fileName = System.IO.Path.GetFileName(file.FileName);
                // store the file inside ~/App_Data/uploads folder
                var path = System.IO.Path.Combine(Server.MapPath("~/myfolder"), fileName);
                file.SaveAs(path);
            }
4

3 に答える 3

0

投稿されたファイルの引数をアクションに追加するだけです:

public ActionResult Create(TotalReport treport, System.Web.HttpPostedFileBase file)

そして、あなたがそれでやりたいことは何でもします - ストリームを読んで、どこかに保存してください...

于 2013-08-16T15:02:53.460 に答える
0

そのようにコントローラ内のファイルを拾います

 [HttpPost]
        public ActionResult Create(HttpPostedFileBase fileUpload)
        {
            if (ModelState.IsValid)
            {
                treport.created = DateTime.Now;

                db.TotalReports.Add(treport);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.c_id = new SelectList(db.Cities.OrderBy(o => o.name), "c_id", "name");
            ViewBag.m_id = new SelectList(db.Schools, "m_id", "name");

            return View(treport);
        }
于 2013-08-16T15:02:01.270 に答える