簡體   English   中英

上傳文件ASP.NET 5

[英]Upload file ASP.NET 5

我正在嘗試在ASP.NET 5中上傳文件,但我在互聯網上看到的兩種方式都失敗了。 使用XMLHttpRequest,這是我的服務器端代碼:

 public async Task<ActionResult> UploadSWF()
 {
     StreamReader reader = new StreamReader(Request.Body);
     var text = await reader.ReadToEndAsync();
     return View();
 }

[編輯1] :我的客戶方:

var client = new XMLHttpRequest();
function upload() 
{
   var file = document.getElementById("uploadfile");
   var formData = new FormData();
   formData.append("upload", file.files[0]);
   client.open("post", "/Home/UploadSWF", true);
   //client.setRequestHeader("Content-Type", "multipart/form-data");
   client.setRequestHeader("Content-Type", "application/x-shockwave-flash");
   client.send(formData);
}

但我唯一能從中得到的是:

------ WebKitFormBoundaryX1h5stVbtaNe6nFw Content-Disposition:form-data; NAME = “上傳”; filename =“data.swf”內容類型:application / x-shockwave-flash CWS;“

[編輯2] :這是我如何得到這個代碼:

 public ActionResult UploadSWF()
    {
        Stream bodyStream = Context.Request.Body;
        var sr = new StreamReader(bodyStream);
        var test = sr.ReadToEnd();
        return View();
    }

所以我得到了文件的名稱和內容類型,但沒有得到它的內容。

這個答案https://stackoverflow.com/a/26445416/1203116正在將流復制到一個文件中,但是文件創建部分對我不起作用,我不知道發生了什么但沒有任何反應。 所以我嘗試用MemoryStream做同樣的事情,我得到一個空字符串。

最后我嘗試了另一種方法,使用如下所示的IFormFile: https//github.com/aspnet/Mvc/blob/437eb93bdec0d9238d672711ebd7bd3097b6537d/test/WebSites/ModelBindingWebSite/Controllers/FileUploadController.cs此接口應該在Microsoft.AspNet.Http中我已添加到我的項目但我仍然無法訪問它。 我在這個命名空間中看不到任何IFormFile。

[編輯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>

在我的控制器中:

public ActionResult UploadSWF(HttpPostedFileBase file)
{
     return View();
}

IFormFile是beta3版本的一部分。 你可能已經過時了。 檢查您的project.json並確保使用beta3(或更新版)的軟件包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM