欢迎您访问我爱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异步从优酷专辑中采集所有视频及信息
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
