Клиентский браузер никогда не узнает, где находятся эти изображения, если вы не сопоставите виртуальный каталог с изображениями. Даже вы не можете использовать Server.MapPath()
и т. Д. Для сопоставления диска.
Вы должны использовать HttpHandler для доступа к файлу за пределами вашего
виртуальный каталог приложения.
Проверьте следующие SO темы, которые имеют отношение к вашей проблеме:
Показать изображения вне приложения ASP.NET
Другой подход, который я получил после изумления, заключается в следующем:
Вы можете попытаться получить доступ к файлу вне виртуального каталога приложения. вам нужно обратить внимание на папку / файл достаточно разрешения.
Вы можете получить доступ к изображениям на вашем сайте, вы можете проверить следующую ссылку:
Отображение изображений, которые хранятся вне корневой папки сайта
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["FileName"] != null)
{
try
{
// Read the file and convert it to Byte Array
string filePath = "C:\\images\\";
string filename = Request.QueryString["FileName"];
string contenttype = "image/" +
Path.GetExtension(Request.QueryString["FileName"].Replace(".","");
FileStream fs = new FileStream(filePath + filename,
FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
br.Close();
fs.Close();
//Write the file to response Stream
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = contenttype;
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
catch
{
}
}
}
Надеюсь, это поможет.