Как отобразить изображение из файловой системы в теге img .NET C#

#c# #.net #image #file #io

#c# #.net #изображение #файл #io

Вопрос:

Мое изображение хранится на диске C (за пределами веб-корня (как для локального, так и для сервера) — и именно здесь оно должно оставаться)..

 C:\clients\...\test.jpg
  

Я хочу отобразить его во внешнем интерфейсе в теге img. (.NET web forms)

Есть ли способ сделать это?

Комментарии:

1. Основываясь на вашем комментарии ниже — вы имеете в виду, что файл хранится на диске C: сервера или клиентского компьютера?

2. @DanielKelley на моем локальном компьютере и на сервере каталог, в котором хранятся изображения, находится за пределами корня проекта / сайта

Ответ №1:

Вы можете использовать общие обработчики. Вот пример:

 <%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.IO;
using System.Web;
using Deimand.Business;
using System.Configuration;

public class Handler : IHttpHandler
{
    public bool IsReusable
    { get{ return false; } }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "image/jpeg";
        if (context.Request.QueryString["imageId"] != null)
        {
           byte[] imageContent = File.ReadAllBytes("C:yourimage.jpg")
           context.Response.OutputStream.Write(imageContent, 0, imageContent.Length);
        }
    }
}
  

Ответ №2:

Вы можете создать папку, вызываемую images в корневой папке вашего сайта. Затем вы можете добавить туда свое изображение (щелкните правой кнопкой мыши по папке и добавьте существующий элемент). Наконец, в вашей веб-форме вы можете перетащить изображение или объявить изображение asp.net управление, как показано ниже:

 <asp:Image id="Image1" runat="server" ImageUrl="images/image1.jpg"/>
  

Комментарии:

1. @mapleafman Тогда вы не сможете показать это изображение на своем сайте, за исключением случаев, когда компьютер, на котором вы это делаете, является сервером, что, я думаю, не является обычным случаем.

Ответ №3:

Каталог должен быть доступен с веб-сайта, вы можете отобразить его как виртуальный каталог, а затем указать путь относительно него.

 <asp:Image id="Image1" runat="server" ImageUrl="pathtovirtualdir/test.jpg"/>