asp.net-mvc – 保存为“BodyPart_3ded2bfb-40be-4183-b789-9301
发布时间:2020-12-15 19:12:04 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET Web API上传文件。我在RC之前这样做了,但由于某种原因,该文件被保存为“BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af”而不是文件名。下面的文件名变量也返回此bodypart字符串,而不是文件名。我似乎不知道我在哪里错了。任何帮助是
我正在使用ASP.NET Web API上传文件。我在RC之前这样做了,但由于某种原因,该文件被保存为“BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af”而不是文件名。下面的文件名变量也返回此bodypart字符串,而不是文件名。我似乎不知道我在哪里错了。任何帮助是赞赏。
客户代码: function upload() { $("#divResult").html("Uploading..."); var formData = new FormData($('form')[0]); $.ajax({ url: 'api/files/uploadfile?folder=' + $('#ddlFolders').val(),type: 'POST',success: function (data) { $("#divResult").html(data); },data: formData,cache: false,contentType: false,processData: false }); }; 控制器: public Task<HttpResponseMessage> UploadFile([FromUri]string folder) { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType)); } // Save file MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files")); Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider); return task.ContinueWith<HttpResponseMessage>(contents => { string filename = provider.BodyPartFileNames.First().Value; return new HttpResponseMessage() { Content = new StringContent(string.Format("File saved in {0}.",folder)) }; },TaskScheduler.FromCurrentSynchronizationContext()); 文件看起来像: 解决方法
这是我们做出的一个严重的改变 – 考虑到采取在Content-Disposition头字段中提供的文件名的安全风险,所以我们现在计算一个文件名,这是你看到的。
如果你想自己控制服务器本地文件名,那么你可以从MultipartFormDataStreamProvider派生并覆盖GetLocalFileName,以提供任何你想要的名称。请注意,这样做可能有安全注意事项。 希望这可以帮助, Henrik (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net core 2.0 入门攻略 第一章 环境部署
- asp.net-mvc – 区域在ASP.NET视图?
- asp.net-mvc – ASP MVC ChildActionOnly应该有路由
- asp.net-mvc – 如何在html.LabelFor中显示一些文本?
- 如何获取ASP.NET应用程序的最后开始时间?
- asp.net-mvc – Steve Sanderson的BeginCollectionItem帮助
- asp.net – 如何使用HTML5电子邮件输入类型与服务器端.NET
- asp.net-mvc – 将属性分配给@ Html.DropdownList
- C#输入的字符串只包含汉字
- asp.net政府企业网站前台+后台源码
推荐文章
站长推荐
- ASP.NET Core技术研究-探秘依赖注入框架
- 通过扩展让ASP.NET Web API支持JSONP
- asp.net-mvc – 将现有的ASP.NET MVC网站移植到D
- asp.net-mvc-3 – 使用razor设置knockout viewmo
- asp.net – 如何从包含UserControls的Repeater获
- Asp.Net App Pool重叠回收时间?
- asp.net-mvc-3 – 使用自定义VirtualPathProvide
- asp.net – 如何禁用viewstate的aspx页面?
- asp.net – 在Azure WebApp / Website中使用Wind
- asp.net-core – JsonConvert DataSet .NET Core
热点阅读