У меня есть проект MVC, который позволяет пользователям загружать файлы в свою учетную запись и делать их доступными через ссылку на путь к файлу в базе данных, когда пользователь загружает свое содержимое, файл переименовывается на основе исходного имени и отметка времени:
if (uploadedF.ContentLength > 0)
{
InputFileName = Path.GetFileName(uploadedF.FileName);
ServerSavePath = string.Concat(Server.MapPath("~/filesUP/") + YMD + "_" + fHM + "_" + InputFileName);
//Save file to server folder
uploadedF.SaveAs(ServerSavePath);
}
Затем переменная ServerSavePath сохраняется в базе данных SQL как есть, поэтому URL выглядит так:
C:\inetpub\wwwroot\projectname\filesUP\20200309_1047_filename.jpg
Вызов ссылки на объект данных:
{
"data": "fileUrl",
"render": function (data, type, row, meta) {
if (type === 'display') {
data = '<a href="' + data + '">' + 'Check Document' + '</a>';
}
return data;
}
}
И браузер показывает путь следующим образом:
file:///C:/inetpub/wwwroot/projectname/filesUP/20200309_1047_filename.jpg
При нажатии на ссылку браузер ничего не делает, кроме открытия его на новой вкладке, URL выглядит так Chrome about:blank#blocked
.
IIS имеет все права на доступ к папкам проекта, пробовал отладку, и проблема сохраняется в любом случае. Есть ли другой способ получить доступ к файлу прямо из браузера?