【问题标题】:What are valid characters for creating a multipart form boundary?创建多部分表单边界的有效字符是什么?
【发布时间】:2010-09-13 22:20:08
【问题描述】:

在 HTML 表单帖子中,创建多部分边界的有效字符是什么?

【问题讨论】:

    标签: boundary multipartform-data


    【解决方案1】:

    根据RFC 2046,第 5.1.1 节:

     boundary := 0*69<bchars> bcharsnospace
    
     bchars := bcharsnospace / " "
    
     bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
                      "+" / "_" / "," / "-" / "." /
                      "/" / ":" / "=" / "?"
    

    所以它的长度可以在 1 到 70 个字符之间,由字母数字和您在列表中看到的标点符号组成。除了末尾之外,允许有空格。

    【讨论】:

    • 我刚刚测试了这个,看起来 apache 不接受 ","。
    • @Chris 使用什么“安全”字符?
    • 嗯,所以我不会画剪刀--8
    【解决方案2】:

    对于边界的内容没有规则,但它不能出现在您的消息的任何部分内容通常是随机生成的数字、字母或两者组合的序列,以保证唯一性和区分从任何可能的字典单词。因此,当您开始您的消息时,每个数据类型部分都由“–”分隔,然后是边界序列和内容类型 + 编码。在最后一段“-”之后的边界后跟“-”用于分隔消息的结尾。多部分内容的工作方式是在电子邮件的“Content-type:”标题中指定一个边界。边界用于分隔不同的内容类型,看起来像这样:

    Content-type: multipart/mixed; boundary="fU3W4Vzr4G3D54f3"
    

    【讨论】:

    • 哦,但是有规则,即使大多数人从未违反它们。 :-)
    • 嗯,规则是它不能出现在您提交的事物消息中。我想它的措辞是错误的,但是否决票? pssh:P
    • @Pacerier 有一些规则,它们在 RFC-2046 中,如果你正在写电子邮件,你必须遵守规则,如果你正在阅读,你应该更加宽容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2021-09-07
    • 2016-05-30
    相关资源
    最近更新 更多