c# – 上传文件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); } 但我唯一能从中得到的是:
[编辑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 [编辑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(或更新版)的软件包.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |