asp.net - 如何从数据库加载背景图像?

标签 asp.net css database background-image

我想允许用户从 SQL 下载图片,这些图片将成为他们在我网站上的背景。

我已经在各个地方使用上传的图片作为前景对象,所以我知道存储和检索工作正常,我通常 DataBind()asp:FormView , 但现在我正尝试将此图像用作 <body> 中的背景,但是 <body>需要一个 URL 字符串。

这是我的。我在这方面遇到了困难,找不到答案。

<body style="background-image:url(<%# GetBodyStyle() %>">

代码隐藏:

public object GetBodyStyle()
{
  object bodyBackgroundImageUrl = BodyBackgroundImageUrl;

  //Make adjustments
  return bodyBackgroundImageUrl;
}

我有另一个子例程从名为 FetchImage 的数据库中获取我的图像,它返回一个数据表:

protected object BodyBackgroundImageUrl
{
  get
  {
    DataCalls DataCall = new DataCalls();
    return DataCall.FetchImage("MyBackgroundImageID");
  }

最佳答案

我的建议是创建一个图像处理程序:

您可以像创建标准的“ashx”文件一样创建它

<%@ WebHandler Language="C#" Class="getImage" %>
 using System;
 using System.Web;

 public class BackGroundImageHandler : IHttpHandler {

     public void ProcessRequest (HttpContext context) {
         //return content from dabase and render image
        // probably using context.Response.BinaryWrite
     }

     public bool IsReusable {
         get  {
             return false;
         }
    }
 }

如果你想拥有自己的扩展,你可以生成一个 dll 并在 web.config 中配置它,如下所示:

<configuration>
   <system.web>
     ...
     <httpHandlers>
      <add verb="*" path="backimage.img" type="Sample.BackGroundImageHandler, Sample" />
     </httpHandlers>

使用问题中的代码和 ASHX 解决方案:

<body style="background-image:url(BackGroundImage.ashx)">

请记住,您可以配置处理程序来访问 session ,并查询字符串变量,例如:

<body style="background-image:url(BackGroundImage.ashx?id=something)">

您可以在此处找到更多信息:

read image from folder and database

关于asp.net - 如何从数据库加载背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20856026/

相关文章:

javascript - 在不读/写数据库的情况下更新表元素

javascript - 使用 node.js 进行正确的 PostgreSQL 查询

c# - 启用自定义错误会创建运行时错误

javascript - Ajax 调用工作很慢。可以让它更快吗?

javascript - jQuery 单击时,切换 next() 元素,但关闭所有同级元素

html - 右侧边栏相互重叠

javascript - 是否可以将 javascript 存储在数据库中?

html - 如何显示存储在文件夹外的图像?

c# - 间歇性 System.Drawing/GDI+ "Generic"错误

css - 为什么 z-index 在此菜单中不起作用?