代码之家  ›  专栏  ›  技术社区  ›  chama

如何在SQLServer表中存储签名块(包括格式)?

  •  2
  • chama  · 技术社区  · 14 年前

    我的任务是创建一个表来存储每个用户名的电子邮件签名。问题是,我应该如何存储签名块?我可以使用常规的varchar类型,但是如何存储格式化元数据呢?

    欢迎提出任何意见或建议。 谢谢!

    5 回复  |  直到 14 年前
        1
  •  0
  •   dave    14 年前

    使用varchar(max)或任何适当的长度限制。

    否则,唯一真正需要考虑的是,在将html粘贴到数据库之前,您可能希望确保它是html编码的(i、 例如,更换 < 具有 &lt; ,等等)不确定您正在使用什么,但有些工具有一个设置,所以您不必手动执行。

    除了html编码,您还可以做其他事情

    1) 将格式标记限制为某些预定义的集(即,在执行插入之前搜索/替换不需要的标记)。您可以在db存储过程中管理它,或者更好的是在前端(如果您可以控制它的话)。

    <script> '等)

        2
  •  1
  •   Community CDub    8 年前

    <signature>
        <username>chama</username>
        <avatar href="http://url to my image"/>
        <quote>A bird in the hand is not in the nest</quote>
    </signature>
    

    它可能看起来像:


    查马
    鸟在手不在窝
        3
  •  0
  •   TomTom    14 年前

    HTML、RTF、XML。标准的选择是多重的。

    注:“电子邮件签名”不是“数字签名”。“数字签名”一词有特定的含义,指的是一种签名,以确保(对于电子邮件而言)它来自真实的发件人并且没有被篡改。

        4
  •  0
  •   p.campbell    14 年前

    我建议按你最初的想法去做-- varchar(max) . 这将允许您存储基于ASCII的签名。这包括纯文本、RTF或HTML签名。

    如果用户希望嵌入图像(即不是图像的链接),则必须确定调用者在存储图像之前和从表中读取图像之后将这些图像转换为Base64或其他图像的方法。

        5
  •  0
  •   AllenG    14 年前

    根据我的发现,你基本上有两个选择:

    1) 将格式化的签名数据转换为二进制,并将其存储为BLOB。
    2) 与其将签名本身保存在DB中,不如将它们另存为文件,并在DB中存储对该文件位置的引用。