Передать имя файла в качестве параметра в контроллер через jQuery - PullRequest
0 голосов
/ 26 января 2012

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

Вид:

<table>
    <tr>
         <th>
            Image
        </th>
        <th>
            Name
        </th>

    </tr>

@foreach (var item in Model.CourseApplicationForms)
{
    <tr>
       <td>
            @Html.DisplayFor(modelItem => item.thumbnail)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.sname)
        </td>
        <td>
            <a href="#" class="photoupload" id="@item.enrollment_id">Upload File</a>
        </td>
    </tr>
}
</table>

<div id="dialog" title="Upload files">        
    @using(Html.BeginForm("ImageUpload","Student", FormMethod.Post, new {id="photouploadform", enctype = "multipart/form-data" }))
    {
        <p><input type="file" id="fileUpload" name="fileUpload" size="23"/> </p><br />
        <p><input type="submit" value="Upload file" /></p>        
        <input type="hidden" id="EnrollId" />
    }    
</div>

<script type="text/javascript">
    $(function () {
        $('.photoupload').click(function (event) {
            $('#EnrollId').val(event.target.id);
            $('#dialog').dialog('open');
        });

        $('#photouploadform').submit(function () {
            $.getJSON("/Student/ImageUpload/", {
                Id: $('#EnrollId').val(), file: $('#fileUpload')
                }, function (data) {
                        $('#dialog').append('<p>' + data + '</p>');
                    });
                    return false;
                });

        $("#dialog").dialog({
            autoOpen: false,
            show: "blind",
            width: 400,
            hide: "fade",
            modal: true,
            resizable: false

        });

    });
</script>

Контроллер

    [AcceptVerbs(HttpVerbs.Get)]
 JsonResult ImageUpload(int Id, HttpPostedFileBase file = null)
{
    string filePath = string.Empty;
    if (file.ContentLength > 0)
    {
        Directory.CreateDirectory(HttpContext.Server.MapPath("~/Content/Photo/medium"));
        filePath = Path.Combine(HttpContext.Server.MapPath("~/Content/Photo/medium"), Path.GetFileName(file.FileName));
        file.SaveAs(filePath);
    }
    return Json(filePath, JsonRequestBehavior.AllowGet);
}

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

Заранее спасибо

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