1

目的

同じソリューションで2つのプロジェクトがあり、目的はドメインプロジェクトのWebプロジェクトから画像を取得することです。

  1. Project.web( "Webアプリケーション")"これが画像/Content/Imagesです"
  2. Project.domain( "すべてのドメインエンティティ")"ここから取得したい!!"

Webの「Content/Images」フォルダから読み込もうとしていた問題
ですが、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 アプリケーションの一部として含める必要があります。たとえば、MVC アプリケーション内で Server.MapPath メソッドを使用してアクセスできるように、イメージをProject.domainASP.NET MVC アプリケーション (たとえば、フォルダー内)にコピーするビルド後のコンパイル手順を実行できます。App_Data画像:

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