#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"/>