欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于文件上传跨域及接收

程序员文章站 2022-06-11 14:37:28
...
  • 修改配置文件(正式部署请将*替换为具体的域名)
<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("您要保存的路径");
        }
    }
}

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