【发布时间】:2013-04-03 10:02:33
【问题描述】:
我想在 app_data 文件夹中存储一些图像,我知道它是一个安全文件夹 但我不知道如何从 HTML 访问此图像文件(没有图像出现)
有什么建议,或者我可以如何将我的图像存储在外部用户无法访问的安全位置
【问题讨论】:
标签: asp.net
我想在 app_data 文件夹中存储一些图像,我知道它是一个安全文件夹 但我不知道如何从 HTML 访问此图像文件(没有图像出现)
有什么建议,或者我可以如何将我的图像存储在外部用户无法访问的安全位置
【问题讨论】:
标签: asp.net
以下内容应该可以帮助您入门。
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();
}
}
}
}
【讨论】:
App_Data 文件夹设计用于存放数据库、XML 文件和其他形式的数据存储。无需将图像存储在那里。相反,在别处创建一个文件夹并使用您的网络服务器禁用该文件夹上的目录浏览。最后,如果用户可以看到图像,他们可以以一种或另一种方式访问它,但禁用目录浏览器意味着他们不能像在 Windows 资源管理器中那样只遍历文件夹。
【讨论】:
如果您只想控制对图像的访问,您可以将文件存储在数据库中,并将它们作为二进制图像提供给您想要的用户。示例:
<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
您可以通过here了解更多信息。
【讨论】: