1

我正在使用 HTML5 File API 功能为我的网站创建漂亮的文件上传器。

但是我在服务器端(我使用 ASP.NET MVC 4)遇到了一些问题。

我在 VS 的断点处看不到任何文件数据,它总是等于该null值。断点正在触发(所以按照这个逻辑,有一个请求),但没有任何数据。

我已经读过它的参数 POST 方法,它接受一个文件必须是相同的 ID 值,它是在你的上传页面的 HTML 标记中设置的。

让我们看看我的代码:

服务器端:

[HttpPost]
public ActionResult Upload(HttpPostedFileBase fileData)
{
    if (fileData != null && fileData.ContentLength > 0)
    {
        var fileName = System.IO.Path.GetFileName(fileData.FileName);
        var path = System.IO.Path.Combine(@"C:\tmp", fileName);
        fileData.SaveAs(path);
    }

    return RedirectToAction("../NewContract/Strict");
}

客户端(加价):

http://ideone.com/o2msT1

客户端(JS):

http://ideone.com/xAJy3i

如何解决我的问题?

4

2 回答 2

1

改变:

Content-Disposition: form-data; name='myFile'; filename='"

至:

Content-Disposition: form-data; name='fileData'; filename='"

并将与模型绑定一起使用。

于 2013-09-21T01:29:19.333 回答
-2

不要依赖模型绑定:

var length = Request.ContentLength;
var bytes = new byte[length];
Request.InputStream.Read(bytes, 0, length);
于 2013-07-28T22:05:06.860 回答