关于文件上传跨域及接收

时间:2021-09-23 04:48:13
  • 修改配置文件(正式部署请将*替换为具体的域名)
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
  • 首先提供一个支持[HttpOptions]请求的同名方法,返回支持跨域
public void UploadFile(int id = 1)
{
//此方法用于跨域的验证;也可以加上如下俩句话。第二个为此方法支持的请求方式
HttpContext.Current.Request.Headers.Add("Access-Control-Allow-Origin", "*");
HttpContext.Current.Request.Headers.Add("Access-Control-Allow-Methods", "POST, OPTIONS");
}
  • 之后提供一个对应请求方式的方法
[HttpPost]
public void UploadFile()
{
//您需要完成的事,顺便写下API如何接收后台POST过来的文件吧
if (!Request.Content.IsMimeMultipartContent("form-data"))
{ //验证数据传递方式
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
HttpRequest currentRequest = HttpContext.Current.Request;
HttpFileCollection files = currentRequest.Files;
if (files.Count > 0)
{
HttpPostedFile currentFile = null;
foreach (string file in files)
{
currentFile = currentRequest.Files[file];
currentFile.SaveAs("您要保存的路径");
}
}
}

声明:
- 因本人实力有限,文中难免存在描述不正确。请各位大神指正、补充,我将不胜感激
- 感谢您耐心的读完此文。如对您有帮助,麻烦点个赞以资鼓励