gpt4 book ai didi

c# - 如何使用 ASP.NET Core 项目在 Visual Studio 2017 中创建指向图像的符号链接(symbolic link)?

转载 作者:行者123 更新时间:2023-11-30 21:30:40 25 4
gpt4 key购买 nike

我有一个在 ASP.NET Core 2.2 框架之上使用 C# 编写的项目。

我的 Assets 图像位于我的项目之外的文件夹中,我需要让外界可以访问这些图像。我的图像实际位于 c:/public_assets/photos。当我的应用运行时,URI https://mydomain/public/any_image.jpg 需要显示在 c:/public_assets/photos/any_image.jpg 中找到的图像.

然后我会像这样使用 razor-view 渲染我的照片

<img src="~/public/any_image.jpg" alt="..." />

我希望这将是一个添加到项目配置文件的设置,这样当我将项目部署到生产环境时,我只需更改配置即可。

最佳答案

添加一个新的 Controller

public class publicController : Controller
{
public FileResult pic(string id)
{
var fileName = id;
if (fileName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0) throw new Exception();
string absolutePath = Path.GetFullPath(Path.Combine("c:/public_assets/photos/", fileName));
if (!System.IO.File.Exists(absolutePath)) throw new Exception();
byte[] fileBytes = System.IO.File.ReadAllBytes(absolutePath);
string fileExtension = Path.GetExtension(absolutePath).Replace(".", "");
fileName = Path.GetFileName(absolutePath);
return File(fileBytes, "image/" + fileExtension, fileName);
}
}

编辑

  • 重新运行 NotFound
  • 不要将文件读入内存
  • 检查所有的文件扩展名

    public class publicController : Controller
    {
    public ActionResult pic(string id)
    {
    var fileName = id;
    if (fileName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0) return NotFound();
    string absolutePath = Path.GetFullPath(Path.Combine("c:/public_assets/photos/", fileName));
    if (!System.IO.File.Exists(absolutePath)) return NotFound();
    string fileExtension = Path.GetExtension(absolutePath).Replace(".", "").ToLower();
    if (fileExtension != "jpg") return NotFound();
    var fileBytes = System.IO.File.OpenRead(absolutePath);
    fileName = Path.GetFileName(absolutePath);
    return File(fileBytes, "image/" + fileExtension, fileName);
    }
    }

然后调用

  http://xxxxxxxxx/public/pic/1.jpg

http://xxxxxxxxx/public/pic/MikeA.jpg

关于c# - 如何使用 ASP.NET Core 项目在 Visual Studio 2017 中创建指向图像的符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54056530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com