C# 上载文件ASP.NET 5

C# 上载文件ASP.NET 5,c#,asp.net,.net,asp.net-core,C#,Asp.net,.net,Asp.net Core,我试图在ASP.NET5中上传一个文件,但我在internet上看到的两种方式都失败了。 对于XMLHttpRequest,以下是我的服务器端代码: public async Task<ActionResult> UploadSWF() { StreamReader reader = new StreamReader(Request.Body); var text = await reader.ReadToEndAsync(); return Vie

我试图在ASP.NET5中上传一个文件,但我在internet上看到的两种方式都失败了。 对于XMLHttpRequest,以下是我的服务器端代码:

 public async Task<ActionResult> UploadSWF()
 {
     StreamReader reader = new StreamReader(Request.Body);
     var text = await reader.ReadToEndAsync();
     return View();
 }
但我能从中得到的唯一东西是:

------WebKitFormBoundaryX1h5stVbtaNe6nFw 内容配置:表单数据;name=“上传”;filename=“data.swf” 内容类型:应用程序/x-shockwave-flash 水煤浆 ;"

[编辑2]:以下是我如何获得此信息的代码:

 public ActionResult UploadSWF()
    {
        Stream bodyStream = Context.Request.Body;
        var sr = new StreamReader(bodyStream);
        var test = sr.ReadToEnd();
        return View();
    }
所以我得到了文件名和内容类型,但不是它的内容

这个答案是将流复制到一个文件中,但是文件创建部分对我不起作用,我不知道发生了什么,但什么也没有发生。因此我尝试对MemoryStream执行相同的操作,但得到了一个空字符串

最后我尝试了另一种方法,使用如下所示的文件: 此接口应位于Microsoft.AspNet.Http中,我已将其添加到我的项目中,但我仍然无法访问它。我在此命名空间中看不到任何文件

[编辑1]:我尝试的第一种方法是使用HttpPostedFileBase,就像我在ASP.NET MVC 5中使用的一样,但它在我的vNext项目中不起作用。我总是遇到MissingMethodException。 我在客户端的代码是:

<form action="/home/UploadSWF" method="POST" enctype="multipart/form-data">
        <input type="file" name="file" accept=".swf, application/x-shockwave-flash/*">
        <input type="submit" name="submit" />
    </form>

IFormFile
是作为beta3版本的一部分引入的。您可能有过时的软件包。请检查您的
project.json
,并确保使用beta3(或更新版本)包。

不确定是否有用,但尝试将HttpPostedFileBase上载参数放入UploadSWF,看看它是否为null。我曾经尝试过这种方法。实际上,这是我想要实现的第一种方法,但我总是遇到MissingMethodException。请求无法通过classic到达方法控制器。使用我原来的ASP.NET MVC 5项目ect它工作得很好。所以我试着为我的vNext项目找到其他东西…也许你也应该添加你的发布代码。我只能在Nuget上看到Beta2我怎么能得到这个Beta3?哈,好吧,我不是通过更改我的项目就得到的。json即使Nuget没有显示它,它也会自动得到最新的。谢谢你,Ajay不能得到这个工作正确地使用Beta3。我认为这太早了。您知道如何处理XmlHttpRequest吗?我可以看到您使用的名称是“上载”“为了这个文件。您在操作中是否使用了相同的名称?对于IFormFile,我有一个例外,因此我想我还必须将Microsoft.AspNet.PipelineCore Beta3添加到我的项目中,但结果是错误500。名称“upload”是我在XmlHttpRequest方法中使用的名称。我可以得到有关文件的信息,比如它的名称或长度,但我完全不知道如何访问它的内容。没有请求。文件或请求。文件我可以使用。。。
<form action="/home/UploadSWF" method="POST" enctype="multipart/form-data">
        <input type="file" name="file" accept=".swf, application/x-shockwave-flash/*">
        <input type="submit" name="submit" />
    </form>
public ActionResult UploadSWF(HttpPostedFileBase file)
{
     return View();
}