[HttpPost]
public HttpResponseMessage Post(HttpRequestMessage request)
{
try
{
HttpResponseMessage result = null;
var httpRequest = HttpContext.Current.Request;
var filePath = HttpContext.Current.Server.MapPath("~/camera/");
string FileName = Guid.NewGuid().ToString() + ".jpeg";
if (!Directory.Exists(filePath))
Directory.CreateDirectory(filePath);
if (httpRequest.Files.Count > 0)
{
foreach (string file in httpRequest.Files)
{
var postedFile = httpRequest.Files[file];
postedFile.SaveAs(filePath + FileName);
}
result = Request.CreateResponse(HttpStatusCode.Created, FileName);
}
else
{
result = Request.CreateResponse(HttpStatusCode.BadRequest);
FileName = "";
}
return result;
}
catch (Exception)
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
but webcam.js return Access to XMLHttpRequest at 'http://api.xx.xx/UploadImage' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
WebApiConfig
`public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("multipart/form-data"));
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}`