Я использовал эту команду для создания папки для местоположения загрузки фотографий.
public class ApplicationRootSiteData : IApplicationRootSiteData
{
private readonly IHostingEnvironment _hostingEnvironment;
private readonly IHttpContextAccessor _httpContextAccessor;
public ApplicationRootSiteData(IHostingEnvironment hostingEnvironment, IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
_hostingEnvironment = hostingEnvironment;
}
public string RootFolderName => "Upload";
public string ProductPictureFolder => "ProductPictureFolder";
public string ProductMainPictureFolder => "ProductMainPicture";
public string WebRootPath => _hostingEnvironment.WebRootPath;
public Uri GetAbsoluteUri()
{
var request = _httpContextAccessor.HttpContext.Request;
UriBuilder uriBuilder = new UriBuilder();
uriBuilder.Scheme = request.Scheme;
uriBuilder.Host = request.Host.Host;
uriBuilder.Path = request.Path.ToString();
uriBuilder.Query = request.QueryString.ToString();
return uriBuilder.Uri;
}
public string RootPath => Path.Combine(WebRootPath, RootFolderName);
public string GetProductPicturePath()
{
return Path.Combine(WebRootPath, RootFolderName, ProductPictureFolder);
}
public string GetProductMainPicturePath()
{
string path = Path.Combine(WebRootPath, RootFolderName, ProductPictureFolder, ProductMainPictureFolder);
return path;
}
public string GetNewPath()
{
string productMainPicturePath = GetProductMainPicturePath();
return Path.Combine(productMainPicturePath);
}
}
[HttpPost("UploadProductPic"), DisableRequestSizeLimit]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public IActionResult UploadProductPic()
{
var file = Request.Form.Files[0];
try
{
if (!Directory.Exists(_applicationRoot.GetNewPath()))
{
if (!Directory.Exists(_applicationRoot.RootPath))
{
Directory.CreateDirectory(_applicationRoot.RootPath);
}
if (!Directory.Exists(_applicationRoot.GetProductPicturePath()))
{
Directory.CreateDirectory(_applicationRoot.GetProductPicturePath());
}
if (!Directory.Exists(_applicationRoot.GetProductMainPicturePath()))
{
Directory.CreateDirectory(_applicationRoot.GetProductMainPicturePath());
}
}
if (file.Length > 0)
{
string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
string fullPath = Path.Combine(_applicationRoot.GetNewPath(), file.Name);
using (var stream = new FileStream(fullPath, FileMode.Create))
{
file.CopyTo(stream);
}
}
return Ok();
}
catch (Exception e)
{
return BadRequest();
}
}
, и она работает, создает папку и загружает в нее изображение.
теперь мне нужно показатьизображение в Angular (Front-End )
, но оно показывает мне эту ошибку:
Не разрешено загружать локальный ресурс: file: /// C: / Users / Mr-Programer / Desktop / New% 20folder /StoreFinal / StoreFinal / wwwroot / Upload / ProductPictureFolder / ProductMainPicture / 77777.png
, и я использую этот URL в ядре asp: https://localhost:44390/wwwroot/Upload/ProductPictureFolder/ProductMainPicture/77777.png
, но он ничего не показывает.
и это мой автозапуск:
app.UseHttpsRedirection();
app.UseCors("CorsPolicy");
app.UseAuthentication();
app.UseStaticFiles();
app.UseDefaultFiles();
var scopeFactory = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
}
Теперь в чем проблема?Как я могу решить это?