从web项目外部的web内容文件夹中获取图像

本文关键字:web 文件夹 图像 获取 项目 外部 | 更新日期: 2023-09-27 18:02:48

目标

我有两个项目在同一个解决方案中,目标是从域项目上的web项目中获取图像。

  1. Project.web("web应用程序"("这是图像/内容/图像">
  2. Project.domain("所有域实体"("我想从这里拿走它!!">

问题
我试图从我的网络"内容/图像"文件夹中读取,但我不知道如何设置网址,以及是否可以这样做。

丑陋和肮脏的代码是这样工作的:但我不想修复文件夹上的图像>

Image logo = Image.FromFile(@"c:'folder'img.png");

从web项目外部的web内容文件夹中获取图像

我花了一些时间搜索Server变量,享受吧!:(

public async Task<IHttpActionResult> GetRenderImage(long id, int size = 0)
    {
        // Load template           
        var file = HttpContext.Current.Server.MapPath("~/Content/media/template.png"); 
        WebImage img = new WebImage(file);
        // some operations with image, for sample scale or crop
        ...
        // get image data
        var bytes = img.GetBytes("image/jpeg");
        // Save to blob
        var p = getCloudBlobContainer("RenderImg");
        CloudBlockBlob blob = p.GetBlockBlobReference(String.Format("{0}.jpg", id);
        blob.Properties.ContentType = "image/jpeg";
        await blob.UploadFromByteArrayAsync(bytes, 0, bytes.Length);
        var url = blob.Uri.ToString();
        // Redirect to Azure blob image
        return Redirect(url);
    }

您意识到,当您在IIS中部署应用程序时,就不再有其他项目的概念了。因此,您应该将此图像作为ASP的一部分。NET应用程序。例如,您可以有一个构建后编译步骤,将图像从Project.domain复制到ASP。NET MVC应用程序(例如在App_Data文件夹中(,以便在MVC应用程序中可以使用服务器。访问图像的MapPath方法:

using (var image = Image.FromFile(Server.MapPath("~/App_Data/img.png")))
{
    ...
}