Как добавить путь к загруженному файлу в текстовое поле и сохранить его в базе данных? - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть форма, которая регистрирует новое событие в таблице событий. В этой форме у меня есть кнопка загрузки, которая загружает файл и сохраняет его в папке с именем Uploaded_Files.

Все работает правильно, нопроблема в том, что:

1) Я хочу, чтобы в текстовом поле отчета указывался путь к файлу во время загрузки файла, чтобы я мог сохранить этот путь в базе данных.

2) Также как можноя загружаю несколько файлов и добавляю их пути в другие текстовые поля, в моем примере это текстовые поля image1 и image2.

Это моя модель

   public class events
{
    public int Id { get; set; }
    public string title { get; set; }
    public string report { get; set; }
    public string image1 { get; set; }
    public string image2 { get; set; }
}

Это мой контроллер:

     //To Retrieve list of events//

     public ActionResult Index()
    {
        var evt = _context.evt;
        if (evt==null)
        {
            return Content("No events registered in database");
        }
        return View(evt);
    }


    //Registering new event//

    public ActionResult Add_New()
    {

        return View();
    }

    [HttpPost]
    public ActionResult Save(events e)
    {
        _context.evt.Add(e);
        _context.SaveChanges();
        return RedirectToAction("Index","Events");
    }


    // Creating Upload Button //

    [HttpPost]
    public ActionResult Add_New(HttpPostedFileBase file)
    {
        try
        {
            if (file.ContentLength > 0)
            {
                string filename = Path.GetFileName(file.FileName);
                string filepath = Path.Combine(Server.MapPath("~/Uploaded_Files"), filename);
                file.SaveAs(filepath);

            }
            ViewBag.Message = "Uploaded Successfully";
            return View();
        }
        catch
        {
            ViewBag.Message = "Not uploaded";
            return View();
        }

    }

Это вид:

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

     {


<div>
    @Html.TextBox("file", "", new { type = "file" })
    <input type="submit" value="submit" />
    @ViewBag.Message
</div>


  }


   @using (Html.BeginForm("Save", "events"))
  {
<div class="form-group">
    @Html.LabelFor(a => a.title)
    @Html.TextBoxFor(a => a.title, new { @class = "form-control" })
</div>
<div class="form-group">
    @Html.LabelFor(a => a.report)
    @Html.TextBoxFor(a => a.report, new { @class = "form-control" })
</div>
<div class="form-group">
    @Html.LabelFor(a => a.image1)
    @Html.TextBoxFor(a => a.image1, new { @class = "form-control"})
</div>
<div class="form-group">
    @Html.LabelFor(a => a.image2)
    @Html.TextBoxFor(a => a.image2, new { @class = "form-control" })
</div>
<button type="submit" class="btn btn-primary">Save</button>
}

Я знаю, что что-то нужно объединить либо в контроллере, либо в представлении между формой и кнопкой загрузки, но я не могу понять, как это сделать.-пишите лучшую логику.

любезно помогите, если у вас есть опыт в этой области.Спасибо

1 Ответ

0 голосов
/ 12 сентября 2018

Я думаю, что вы ищете полный путь, откуда файл загружен. Это ограничено браузером, так как это может вызвать проблемы конфиденциальности для пользователей

https://weblogs.asp.net/ashicmahtab/fileupload-control-doesn-t-give-full-path-help

Как получить полный путь к загруженному файлу в C # 3.0?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...