Изображения не отображаются в адротаторе, где путь к изображению, например, "C: \ Uploader \ Image.jpg" - PullRequest
0 голосов
/ 26 декабря 2011

Изображения, не отображаемые в adrotator, где его путь к изображению, такой как «C: \ Uploader \ Image.jpg» или какая-то общая папка на сервере. Если я даю путь в моем проекте, он работает, но вне проекта (например, «C:»: \ Uploader \ Image.jpg ") это ничего не показывает.

<telerik:RadRotator ID="radSlider" runat="server" FrameDuration="400" ScrollDuration="500"
ScrollDirection="Left" Height="250px" Width="550px">
<ItemTemplate>
    <img src='<%# Eval("FullName") %>' alt="Friday" width="550px" />
 </ItemTemplate>
</telerik:RadRotator>

Здесь я присоединяю путь динамически, используя databind. В чем проблема. Пожалуйста, помогите мне? Telerik или asp control

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

Клиентский браузер никогда не узнает, где находятся эти изображения, если вы не сопоставите виртуальный каталог с изображениями. Даже вы не можете использовать 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

    {

    }

}

}

Надеюсь, это поможет.

0 голосов
/ 26 декабря 2011

Вы должны использовать IHttpHandler для обслуживания ваших файлов в другом месте (например, вне корня приложения или в привилегированных папках). AFAIK, Telerik Rad Controls имеет RadBinaryImage или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...