0

我有以下标记:

<form id="did" enctype="multipart/form-data">
    <textarea name="description">Text</textarea>
    <input name="files" id="files" type="file" accept="doc,pdf" />
    ...
</form>

在控制器中是这样的:

  public int Edit_Submit(FormCollection oForm)
    {

            var attachedFiles = oForm["files"];
            var description= oForm["description"];
            ....
    }

我发布的表格jQuery如下所示:

var formInfo = $("#did").serialize();
    $.post('../../data/SubmitEdit', formInfo, function (serverResult) {
   ...

我收到其他数据很好,但总是nullattachedFiles.

不可以通过这种方式吗?我在做什么错请帮忙。

4

2 回答 2

0

我认为您上传的文件不会出现在您的表单集合中。

尝试这样的事情也许:

<form id="did" action="../../data/SubmitEdit" enctype="multipart/form-data">
    <textarea name="description">Text</textarea>
    <input name="files" id="files" type="file" accept="doc,pdf" />
    ...
</form>

[HttpPost]
public ActionResult SubmitEdit(FormCollection oForm, HttpPostedFileBase files) {
     ...

确保名称与您HttpPostedFileBase的相同idinput[type="file"]

于 2013-11-14T21:24:27.500 回答
0

$.post()方法本质上是一个 ajax 调用,或者用更专业的术语来说,是XMLHttpRequest对象的使用。

并且通过XMLHttpRequest对象,您无法将文件流发送回服务器。不过有一些方法可以模仿。

此外,在服务器端,您应该使用HttpPostedFileBase类将文件流返回到服务器。

于 2013-11-14T21:40:03.367 回答