从web项目外部的web内容文件夹中获取图像
本文关键字:web 文件夹 图像 获取 项目 外部 | 更新日期: 2023-09-27 18:02:48
目标
我有两个项目在同一个解决方案中,目标是从域项目上的web项目中获取图像。
- Project.web("web应用程序"("这是图像/内容/图像">
- Project.domain("所有域实体"("我想从这里拿走它!!">
问题
我试图从我的网络"内容/图像"文件夹中读取,但我不知道如何设置网址,以及是否可以这样做。
丑陋和肮脏的代码是这样工作的:但我不想修复文件夹上的图像>
Image logo = Image.FromFile(@"c:'folder'img.png");
我花了一些时间搜索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")))
{
...
}