欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【AngularJS向后端ASP.NET API控制器上传文件】,下面是详细的讲解!
AngularJS向后端ASP.NET API控制器上传文件
public class FilesController : ApiController { //using System.Web.Http [HttpPost] public async Task<HttpResponseMessage> Upload() { if(!Request.Content.IsMimeMultipartContent()) { this.Request.CreateResponse(HttpStatusCode.UnsuportedMediaType); } var provider=GetMultipartProvider(); var result=await Request.Content.ReadAsMultipartAsync(provider); //文件名类似"BodyPart_26d6abe1-3ae1-416a-9429-b35f15e6e5d5"这样的格式 var originalFileName=GetDeserializedFileName(result.FileData.First()); var uploadFileInfo=new FileInfo(result.FileData.First().LocalFileName); //如果前端无表单数据,这里注销 var filleUploadObj=GetFormData<UploadDataModel>(result); var returnData="ReturnTest"; return this.Request.CreateResponse(HttpStatusCode.OK, new {returnData}); } private MultipartFormDataStreamProvider GetMultipartProvider() { //图片的上传路径 var uploadFolder="~/App_Data/FileUploads"; //获取根路径 var root=HttpContext.Current.Server.MapPath(uploadFolder); //创建文件夹 Directory.CreateDirectory(root); return new MultipartFormDataStreamProvider(root); } //从Provider中获取表单数据 private object GetFormData<T>(MultipartFormDataStreamProvider result) { if(result.FormData.HasKeys()) { var unescapedFormData=Uri.UnescapeDataString(result.FormData.GetValues(0).FirstOrDefault() ?? String.Empty); if(!String.IsNullOrEmpty(unescapedFormData)) { return JsonConvert.DeserializeObject<T>(upescapedFormData); } } return null; } //获取反序列化文件名 private string GetDeserializedFileName(MultipartFileData fileData) { var fileName=GetFileName(fileData); return JsonConvert.DeserializedObject(fileName).ToString(); } //获取文件名 public string GetFileName(MultipartFileData fileData) { return fileData.Headers.ContentDisposition.FileName; } }
关于AngularJS向后端ASP.NET API控制器上传文件的用户互动如下:
相关问题:AngularJS中文社区angular 怎么上传文件
答:上传可以使用多种插件上传,如果要用jQuery,请参考 jQuery File Upload Demo AngularJS Requirements jQuery v. 1.6+ jQuery UI widget factory v. 1.9+ (included) jQuery Iframe Transport plugin (included) JavaScript Templates engine v.... >>详细
相关问题:AngularJS中文社区angular 怎么上传文件
答:angular-ui中有个upload插件,非常好用,具体参照demo >>详细
相关问题:AngularJS中文社区angular 怎么上传文件
答:上传可以使用多种插件上传,如果要用jQuery,请参考 jQuery File Upload Demo AngularJS Requirements jQuery v. 1.6+ jQuery UI widget factory v. 1.9+ (included) jQuery Iframe Transport plugin (included) JavaScript Templates engine v.... >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【dom】javascript dom追加内容实现示例-追加内容
- 【checkbox】让checkbox不选中即将选中的checkbox
- 【Array】js中更短的 Array 类型转换-类型转换
- 【append】append和appendTo的区别以及appendChil
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【ajax清除浏览器缓存】Ajax清除浏览器js、css、
- 【AJAX】AJAX异步从优酷专辑中采集所有视频及信息
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-