1

目标

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

  1. Project.web ("web application") "这里是图片 /Content/Images"
  2. Project.domain ("所有域实体") "我要从这里拿走!!"

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

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

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

2 回答 2

2

我花了一些时间搜索服务器变量,享受!:)

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);
    }
于 2014-11-13T14:45:50.970 回答
1

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

using (var image = Image.FromFile(Server.MapPath("~/App_Data/img.png")))
{
    ...
}
于 2013-03-07T11:44:17.683 回答