【问题标题】:Accessing Image from App_data folder从 App_data 文件夹访问图像
【发布时间】:2013-04-03 10:02:33
【问题描述】:

我想在 app_data 文件夹中存储一些图像,我知道它是一个安全文件夹 但我不知道如何从 HTML 访问此图像文件(没有图像出现)

有什么建议,或者我可以如何将我的图像存储在外部用户无法访问的安全位置

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    以下内容应该可以帮助您入门。

    namespace Moo.Core.Handlers
    {
        public class Thumbnail : IHttpHandler
        {
            public bool IsReusable
            {
                get { return false; }
            }
    
            public void ProcessRequest(HttpContext context)
            {
                String FileName = Path.GetFileName(context.Request.PhysicalPath).Replace(".th", "");
                String AssetName = HttpContext.Current.Request.MapPath(Path.Combine(HttpContext.Current.Request.ApplicationPath, "UserData/Images/" + FileName));
    
                if (File.Exists(AssetName))
                {
                    context.Response.ContentType = ImageManipulation.TypeOf(AssetName).MimeType;
                    context.Response.BinaryWrite(File.ReadAllBytes(AssetName));
                    context.Response.End();
                }
            }
        }
    }
    

    【讨论】:

    • 要获得更完整的答案,您是否还可以为处理程序添加任何配置(如果需要)以及如何使用此处理程序引用 HTML 中的图像?
    • 我回到电脑前会做。
    【解决方案2】:

    App_Data 文件夹设计用于存放数据库、XML 文件和其他形式的数据存储。无需将图像存储在那里。相反,在别处创建一个文件夹并使用您的网络服务器禁用该文件夹上的目录浏览。最后,如果用户可以看到图像,他们可以以一种或另一种方式访问​​它,但禁用目录浏览器意味着他们不能像在 Windows 资源管理器中那样只遍历文件夹。

    【讨论】:

      【解决方案3】:

      如果您只想控制对图像的访问,您可以将文件存储在数据库中,并将它们作为二进制图像提供给您想要的用户。示例:

      <img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
      

      您可以通过here了解更多信息。

      【讨论】:

        猜你喜欢
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-28
        • 2020-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多