Доступ к изображению с другого сервера - PullRequest
2 голосов
/ 01 ноября 2011

У меня есть файл изображения, размещенный на одном сервере, и приложение на другом сервере.

Я хочу получить доступ к этому изображению, ниже я написал код:

На default.aspx у меня есть

 <asp:Image ID="Image1" runat="server"  ImageUrl= "GetImage.aspx?imgName=MyImage.jpg" />

и на GetImage.aspx, я написал следующий код на page_load

 protected void Page_Load(object sender, EventArgs e)
    {
        // Changing the page's content type to indicate the page is returning an image
        Response.ContentType = "image/jpg";
        var imageName = Request.QueryString["imgName"];
        var path = "//SERVER/FOLDER/" + imageName;


        if ((string.IsNullOrEmpty(imageName) == false))
        {
            // Retrieving the image
            System.Drawing.Image fullSizeImg;
            fullSizeImg = System.Drawing.Image.FromFile(Server.MapPath(path));
            // Writing the image directly to the output stream
            fullSizeImg.Save(Response.OutputStream, ImageFormat.Jpeg);
            // Cleaning up the image
            fullSizeImg.Dispose();
        }
    }

Но я получаю ошибку в

fullSizeImg = System.Drawing.Image.FromFile (Server.MapPath (путь));

Пожалуйста, дайте мне знать, где я ошибаюсь.Нужно ли что-нибудь еще, кроме Server.MapPath?потому что мое изображение находится на другом сервере.

РЕДАКТИРОВАТЬ

  • У меня есть папка с изображениями на моем компьютере
  • Я создал веб-приложение вдругой компьютер [той же сети], развернутый в IIS, изображение отображается правильно.С путем, подобным http://10.67.XX.XX/websiteName/Default.aspx
  • , но когда я пытаюсь получить к нему доступ с моего компьютера или другого компьютера, я не могу видеть изображение.

Ответы [ 2 ]

4 голосов
/ 01 ноября 2011

Вы не должны использовать Server.MapPath. Это используется для сопоставления виртуальных путей на вашем сайте с физическими путями в файловой системе. Если файл существует на другом сервере, просто обратитесь к нему по имени напрямую, без Server.MapPath.

0 голосов
/ 04 декабря 2015

Ответ выше является неправильным, поскольку изображения находятся на отдельном сервере.

Так что System.Images не будет там, где находится изображение.

Во-вторых, вы должны использовать server.Mappath для системных образов, для него требуется путь к Windows, т.е. вам нужно будет использовать \\ server \ C $ \ folder \ image.jpg, это хорошо работает с system.image.FromFile

Кроме того, вы также можете использовать это.

Приветствия

...