单轨文件上传

发布于 2024-09-14 20:19:58 字数 1337 浏览 5 评论 0原文

我想没有人了解这个吧?该文档糟糕而且已经过时了(我能找到的最好的资源是 2006 年的)。

我的形式:

<form action="DoCreate.rails" method="post">

    ${FormHelper.LabelFor("master.Name", "Name", {"class":"label"})}
    ${FormHelper.TextField("master.Name", {"class":"text-input full-width"})}

    ${FormHelper.LabelFor("masterFile", "File", {"class":"label"})}
    <input type="file" id="masterFile" name="masterFile" />

    <div class="edit-controls"><a href="/Master/Index.rails">Back</a> | <input type="submit" value="Create" /></div>
</form>

我的控制器操作:

    public void DoCreate(Master master, HttpPostedFile masterFile)
    {
        try
        {
            Bus.Master.Create(master);

            if (masterFile != null)
            {
                masterFile.SaveAs(@"C:\" + masterFile.FileName);
            }

            RedirectToAction("Index");
        }
        catch (ApplicationException e)
        {
            PropertyBag["error"] = e.Message + "<br />" + e.StackTrace;
            Create();
            RenderView("Create");
        }
    }

我遵循 本指南也无济于事,因为它没有告诉您在实际的 HTML 页面上要做什么。

I don't suppose anyone's clued up on this? The documentation is terrible and far outdated (the best resource I could find was dated 2006).

My form:

<form action="DoCreate.rails" method="post">

    ${FormHelper.LabelFor("master.Name", "Name", {"class":"label"})}
    ${FormHelper.TextField("master.Name", {"class":"text-input full-width"})}

    ${FormHelper.LabelFor("masterFile", "File", {"class":"label"})}
    <input type="file" id="masterFile" name="masterFile" />

    <div class="edit-controls"><a href="/Master/Index.rails">Back</a> | <input type="submit" value="Create" /></div>
</form>

My controller action:

    public void DoCreate(Master master, HttpPostedFile masterFile)
    {
        try
        {
            Bus.Master.Create(master);

            if (masterFile != null)
            {
                masterFile.SaveAs(@"C:\" + masterFile.FileName);
            }

            RedirectToAction("Index");
        }
        catch (ApplicationException e)
        {
            PropertyBag["error"] = e.Message + "<br />" + e.StackTrace;
            Create();
            RenderView("Create");
        }
    }

I followed this guide also with no avail as it doesn't tell you what to do on the actual HTML page.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慢慢从新开始 2024-09-21 20:19:58

看起来问题出在表格的声明上。
上传文件时,您应该向表单元素添加另一个属性:enctype="multipart/form-data"

Looks like the problem is with the declaration of the form.
When uploading files, you should use add another attribute to the form element: enctype="multipart/form-data"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文